【问题标题】:Add PHP to style.css in Wordpress child theme在 Wordpress 子主题中将 PHP 添加到 style.css
【发布时间】:2015-01-29 17:36:38
【问题描述】:

我试图实现一些相对简单的事情,沿着这些思路:

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

div.em-booking { display: none; }

如果用户已登录: 不要修改 style.css

所以我怀疑一些 CSS+PHP 可以解决这个问题:

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

我发现了这个:Accessing global variable in "CSS" (style.php) 这看起来非常有用 - 只需将附加的 embedded_style.php 文件 @import 到 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 wordpress


【解决方案1】:

将任何 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
}

【讨论】:

    【解决方案2】:

    您为什么不直接基于 CSS 类来定位您的代码?假设您的主题支持附加到正文类,这通常是默认和最佳实践,您应该可以使用 logged-in

    例如:&lt;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"&gt;

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

    【讨论】:

    • 这完全完美!至于安全性,如果用户可以深入了解页面的内容并查看仅限会员的内容,我并不担心;我想对非登录用户隐藏它主要是出于审美原因。出于兴趣,我可能仍然会尝试结合一些 CSS 和 PHP。谢谢 Aibrean!
    • 或者您可以仅在登录时将“仅登录”css 文件排入队列。
    猜你喜欢
    • 2020-09-13
    • 2016-08-09
    • 2018-03-24
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2017-06-17
    相关资源
    最近更新 更多