将css放入一个PHP文件中,并以正确的方式包含它

时间:2020-01-04 作者:ralphjsmit

我想把CSS放在PHP文件中,因为我可以使用“条件CSS”,这取决于自定义控件的值。

我的想法是在我的主题目录中的某个地方创建一个新的php文件

./assets/css/header-conditional-styles.css
在此文件中,我创建了以下代码:

<?php header("Content-type: text/css; charset: UTF-8"); ?>
<style>
    <?php if ( text == get_theme_mod( \'layout_logo\', text ) ) : ?>
        .theme-header-title { color: green !important; }
    <?php else : ?>
        .theme-header-title { color: blue !important;}
    <?php endif; ?>
</style>
以中的代码为例。

在我的功能中。php文件我试图包含如下文件:

require( get_template_directory()  . \'/assets/css/header-conditional-styles.php\');
我实现了这个,我知道编辑主题文件有困难。它告诉我,我的更改可能无法保存,我可能会尝试通过FTP上传这些更改。

请为我指出如何包含该文件的正确方向,以及php文件的内容是否正确?谢谢

1 个回复
最合适的回答,由SO网友:WebElaine 整理而成

您可以尝试使用条件类。在常规的“style.css”文件中,您将包括两个类:

.theme-header-title.green { color:green; }
.theme-header-title.blue { color:blue; }
(提示1:避免!important, 如果需要,只需使用更具体的样式-例如,h1.theme-header-title.green.)

然后在HTML中,也就是“header.php”文件中,您可以使用Customizer设置添加绿色或蓝色类:

<?php
if ( text == get_theme_mod( \'layout_logo\', text ) ) {
    $color = \'green\';
} else {
    $color = \'blue\';
}
?>
<h1 class="theme-header-title <?php echo $color; ?>"><?php the_title(); ?></h1>
这样,您就不必包含额外的CSS文件,也不必将CSS与PHP混合使用。

(提示2:向WP添加CSS时,将其排队,而不是使用require(). 类似于避免!important, 如果需要,它将允许您稍后进行调整。)

(提示3:在子主题中进行更改,而不是直接编辑现有主题。这样,主题更新时不会丢失更改。)

(提示4:听起来您是在wp admin中直接编辑主题文件。在中输入SFTP、下载一份主题副本并根据需要上载文件更安全。)