is_category,is_single,is_页面在function.php中不工作

is_category,is_single,is_页面在function.php中不工作,php,wordpress,function,Php,Wordpress,Function,我有一个名为“杂志”的分类,我创作了一些这类文章。这是我文章的链接http://www.example.com/magazine/article-one/我想签入function.php,看我是否属于这个类别,为此我使用if(is_category('magazine')){die('I am in magazine category');}但我什么都没有。我尝试使用is_single和is_page,但所有这些函数都不起作用。是的,这些函数不会直接在functions.php中起作用,因此您需

我有一个名为“杂志”的分类,我创作了一些这类文章。这是我文章的链接
http://www.example.com/magazine/article-one/
我想签入function.php,看我是否属于这个类别,为此我使用
if(is_category('magazine')){die('I am in magazine category');}
但我什么都没有。我尝试使用
is_single
is_page
,但所有这些函数都不起作用。

是的,这些函数不会直接在functions.php中起作用,因此您需要像下面那样使用它们

add_filter('pre_get_posts', 'limit_archive_posts' ,5);
function limit_archive_posts($query){
    if ($query->is_category) {
        $query->set('posts_per_page', 3);
    }
    if($query->is_single == 1){
        $query->set('posts_per_page', 1);
    }
    return $query;
}
或者在wp\u排队脚本、wp\u head、wp\u footer筛选器中使用它们。

尝试下面的代码

 $category_object=get_queried_object();
 $category_term_id = $category_object->term_id;
 if($category_term_id == "your magazine term_id")       
 {
    echo 'I am in magazine category';   
 }

不能在function.php中使用这些函数,否则它们将毫无意义<代码>是类别检查类别。它将在分类页面查询中获取类别

您可以使用此操作来完成工作

add_filter('pre_get_posts', 'limit_archive_posts' ,5);
function limit_archive_posts($query){
    if ('magazine' === $query->is_category) {

     }
    if(1 === $query->is_single){

    }
    return $query;
} 
您可以将函数逻辑放在主题
functions.php
您可以在
taxonomy.php
archive.php
根据条件呈现适当的逻辑

if(is_category('magazine')){
    call_my_category_work_function();
}

能否显示在functions.php中使用的代码?你把它放在函数里了吗?把它挂在钩子上?那么,“一无所获”到底是什么?看到白色页面(可能是解析器错误)?结果与往常一样(可能是错误的主题处于活动状态)?还有别的吗?这是提供任何答案所必需的。您好,感谢您的重播,但是
类别\u对象
为我返回空的!!请共享您的url。我的url看起来像:
http://demo.muretprestige.com/magazine/magazine-mur-prestige-n1/
“杂志”是您的页面标签,也是“杂志”类别,对吗?如果“是”,请将您的页面更改为“杂志页面”。因为两者都有冲突让我们知道你是如何添加你尝试的代码的,我使用了上面的代码,而不是
if($query->is_category)
我使用的是
if('magazine'=$query->query_vars['category_name')
,现在它工作了。嗨,我不明白为什么我要做这个代码
if(is_category)('magazine'){call_my_category_work_function();}
在taxonomy.php?中。我认为过滤器
pre\u get\u posts
是有效的。如果某人是初学者,不理解
操作
过滤器
可以通过这种方式完成。在functions.php中添加登录部分和在模板中添加特定于模板的工作要简单得多。