如何根据条件在unctions.php中添加样式?

时间:2016-03-09 作者:grasycho

我是一个编程新手,我想学习如何在函数中有条件地添加css样式。phpMy收割台由控制.header-outer 班根据类别添加css的最佳方式是什么?我能够确定类别slug(不是标准的wordpress类别),并编写了一些if条件。它正在工作,但无法理解添加css。具有wp_enqueue_style 我应该调用外部预定义的css文件,还是可以直接在函数中编写。php。

wp_enqueue_style( \'***\', get_template_directory_uri() . \'/mycss/category1.css\', array(), \'1.1\', \'all\');
在这里我无法理解第一部分?我想嵌入所有样式,而不是类。

谢谢你,致以最良好的问候。

3 个回复
SO网友:Dionoh

使用此代码向头部添加外部css。

//Proper way to enqueue scripts and styles
function wpdocs_theme_name_scripts() {
    wp_enqueue_style( \'style-name\', get_stylesheet_uri() );
}
add_action( \'wp_enqueue_scripts\', \'wpdocs_theme_name_scripts\' );

SO网友:Ben Racicot

因此,在您的分类页面上,检查开发人员工具中的body标记。应该有一个类别类。然后,您可以使用该类名在CSS中定位该页面。这是标准的CSS内容。

.cat-name{ color: blue; }
所有其他页面都不会有该类名和color: 规则是您的默认规则。

回答您关于如何有条件加载样式表的直接问题:

if(is_category(\'cats\')){ 
    wp_enqueue_style( \'stylesheet-name\', get_template_directory_uri() .\'/mycss/category1.css\', array(), \'1.1\', \'all\');
}
记住,类别和分类法可能会变得非常复杂。自定义分类法和类别可能无法处理像is_category

SO网友:Nour Edin Al-Habal

我想你是想说你想为你网站上的每个类别显示一个不同的css文件。

如果是这样的话,您只需wp_enqueue_scripts 并使用检查这是否是类别模板is_category() 这是哪一类get_the_category(), 并加载相应的样式表。

让我们假设您的文件命名为相同的类别(即photoshop->photoshop.css等):

function wpse220214_enqueue_category_style() {
    if(is_category()) {
        $slug = get_the_category(get_query_var( \'cat\' ));
        $url = get_stylesheet_directory_uri()."/css/categories/$slug.css";
        if(file_exists($url)) { //So you don\'t get errors if the file is missing
            wp_enqueue_style( "$slug-style", $url, array(), \'1.0\');
        }
    }
}
add_action(\'wp_enqueue_scripts\', \'wpse220214_enqueue_category_style\');
Edit: 您提到,您正在使用自定义分类法,“download\\u category”,正如我在您的评论中看到的那样。在这种情况下,我们将使用is_tax()get_queried_object() 而是:

function wpse220214_enqueue_download_category_style() {
    if(is_tax(\'download_category\')) {
        $slug = get_queried_object()->slug;
        $url = get_stylesheet_directory_uri()."/css/categories/$slug.css";
        if(file_exists($url)) { //So you don\'t get errors if the file is missing
            wp_enqueue_style( "$slug-style", $url, array(), \'1.0\');
        }
    }
}
add_action(\'wp_enqueue_scripts\', \'wpse220214_enqueue_download_category_style\');
贷记至this answer 用于使用get_queried_object()this 对于get_query_var(\'cat\').

相关推荐

为什么我的主题的css在另一个网站上不起作用

我在Neve theme的基础上开发我的on theme。首先,我对脚本有问题,因为它不起作用,但我不得不从页脚更改它们的位置。php到标题。php的一切都很好。新的一些脚本无法工作,因为css根本没有加载。我尝试了5种不同的方法,但都失败了。标题中的。php我只是给他们<style> </style></我在函数中使用了寄存器样式。php,标题。php和页脚。php function my_theme_enqueue_styles() { &#x