我是PHP和WordPress的新手,我正在尝试根据用户所在的页面来设置菜单插件的样式(他们的支持很忙)。
我要的是背景和其他样式的更改(如果不在首页上)。
我已经在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
所以我有很多问题。
如果仅根据您是否在主页上来设置菜单样式。然后,您可以简单地根据需要更改使用CSS选择器。
目标主页菜单样式:
body.home .menu-class {background: #333;}
页面上的目标菜单:
body.page .menu-class {background: #FFF;}
您可以在此处找到更多方案及其类:https : //codex.wordpress.org/Function_Reference/body_class
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句