我对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