我對PHP和WordPress有點新,我正在嘗試基於用戶所在頁面的樣式來設置菜單插件(它們的支持很繁忙)。
我想要的是背景和其他風格改變,如果它不在首頁。在WordPress中使用PHP更改CSS樣式
我已經在inspect元素中測試過CSS,所以選擇器是正確的,但我真的不知道如何以一種乾淨有效的方式實現這一點。
亂七八糟的方法是創建另外兩個菜單(因爲top_navigation和main_menu是獨立的,所以共有4個)樣式,並且當它們不在頭版時,將其他兩個菜單替換爲另外兩個菜單使用PHP。所以如果我需要改變菜單的項目,我必須做兩到四次,這對我來說是愚蠢的。
到目前爲止,我想出了創建樣式表的PHP變種和重寫URL從的CSS重定向到.PHP但是我真的沒有對我會怎麼做,牢牢把握這個來自根目錄的.htaccess,因爲這兩個樣式表的位置遠離它。樣式表的
地點:/wp-content/plugins/hmenu/_frontend_files/_menu_5/_css
樣式表的名稱:hero_menu_styles.css
和hero_menu_styles.php
PHP樣式表:
<?php
header('Content-type: text/css; charset: UTF-8');
?>
/* Normal CSS Here */
<?php
if(!is_front_page())
{
echo "#hmenu_load_5 .hmenu_main_holder {background-color: #67b7e1;}"
}
?>
的.htaccess:
我幾乎可以100%肯定有東西這個錯了。
雖然我不知道該怎麼做。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase "/wp-content/plugins/hmenu/_frontend_files/_menu_5/_css/"
RewriteRule ^hero\_menu\_styles\.css$ hero\_menu\_styles\.php [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
所以我有一大堆的問題。
- 是否迴音的工作,我目前正在寫它假定它是在一個stylesheet.php而不是stylesheet.css中的方式嗎?
- 如果我要在我的所有頁面上引用額外的stylesheet.php,並將其放在那裏而不是重寫我的URL,該怎麼辦?有沒有辦法確保它會覆蓋其他樣式表?
- 我可以擁有多個.htaccess文件
(例如/可溼性粉劑內容/插件/ HMENU/_frontend_files/_menu_5/_css)
所以我沒有用長RewriteBase頭痛打擾? - 我是正確的,我不能只是將這個代碼+ CSS插入到我的WordPress主題的header.php或functions.php?
- 我是否需要('/ wp-load.php');或者如果我想使用is_front_page(),則在我的.php樣式表中加載一些WordPress函數(不知道除了wp-load以外)。
是。針對標準的WordPress主體類絕對是這個方法。 –
因此,根據我的理解,如果我將某種樣式應用於歸檔的菜單,它會是'body.archive#menu_load_5 .hmenu_main_holder {background-color:#67b7e1; }' – EndingLegacy
@EndingLegacy正確。你可以從上面提供的鏈接中看到,你可以使用許多不同的主體類來定位特定的元素。 – fostertime