繁体   English   中英

在Wordpress子主题中将PHP添加到style.css

[英]Add PHP to style.css in Wordpress child theme

我正在尝试通过以下方式实现相对简单的目标:

如果用户未登录,则将其添加到style.css:

div.em-booking { display: none; }

如果用户已登录:请勿修改style.css

因此,我怀疑可以使用一些CSS + PHP来达到目的:

div.em-booking { <?php if (!is_user_logged_in() ) echo 'display: none'; ?> }

我发现了这一点: 看起来非常有用的“ CSS”(style.php)中访问全局变量 -只需将其他Embedded_style.php文件导入到style.css文件中。 但这似乎没有用。 我看到该帖子已经很老了(2011年),也许Wordpress已经进行了足够的更改,以致该帖子不再有效。

我已经读过许多更改.htaccess文件的方法,以强制网站读取PHP文件而不是CSS文件,但是该技术是否可以与Wordpress主题+子主题网站一起使用,该网站有两个style.css文件(父主题+儿童主题)?

碰巧的是,我的Wordpress网站的父主题(我怀疑)已被其开发人员放弃,因此不太可能对其进行更新,因此我想可以将父主题的style.css修改为style.php和直接在其中添加我的修改。 但是我更愿意保留父style.css文件。

任何想法/建议都将受到欢迎! 抱歉,如果之前在Stackoverflow中的某个地方已经解决了这个问题,但是在向PHP添加CSS时,我找不到Wordpress特有的功能; 大多数建议涉及修改静态站点的HTML,由于许多文件正在访问style.css,因此我认为该文本不适用于Wordpress。

提前致谢,

保罗

不可能将任何PHP代码插入CSS。 您必须采取另一种方法:

if (!user_is_logged_in()) {
    echo '<div style="display: none"></div>';
} else {
    echo '<div></div>';
}

但这并不安全,因为任何人在查看HTML源代码时都会看到它。 改为这样做:

if (user_is_logged_in()) {
    echo '<div>you are logged in</div>';
} else {
    //show nothing or a message that someone is not logged
}

为什么不仅仅基于CSS类来定位代码? 假设您的主题支持追加到正文类(通常是默认和最佳实践),那么您应该已经logged-in

示例: <body class="home page page-id-2238 page-template page-template-template-home page-template-template-home-php logged-in admin-bar no-customize-support">

.logged-in .em-booking {
       display: block; /* whatever your set default is */
   }
.em-booking {
       display: none;
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM