个性化阅读
专注于IT技术分析

WordPress调用未定义函数in_category()

我的Twenty Thirteen子主题的wp-content / themes / twentythirteen-child / content.php模板中有此条件函数, 可在博客存档页面上某些帖子上方添加横幅。

if (in_category(get_theme_option('banner_1_category')) 
      && (! is_category(get_theme_option('banner_1_category'))))
{ 
        echo "<div id=\"banner-1\"><h3>".get_theme_option('banner_1_text')."</h3></div>";
} 
....

而且工作正常。

现在, 我要转到Avada子主题, 相应的模板是wp-content / themes / avada-child / templates / blog-layout.php。将上面的代码放在此模板中时, 出现以下错误:

致命错误:调用未定义函数in_category()

由于in_category()是WordPress的核心功能, 因此我不太了解如何进行”未定义”。我已将错误搜索到Google, 但没有很多结果。似乎已经通过在wp-load.php文件中添加require_once()解决了类似的错误。

require_once('/home/my-server-path/wp-load.php');

我试着把它放在我的条件之上, 这没有什么区别。

为什么WordPress的核心功能在Avada中不起作用, 我该如何解决?

我正在运行最新版本的WordPress(5.2.3)和Avada(6.0.3)


编辑:

无法提及上述条件函数是通过include注入到模板中的

include 'my-path/includes/banners.php';

工作方式:

wp-content/themes/twenty-thirteen-child
    ↳ archive.php ('get_template_part' content-cpt.php) 
    ↳ content-cpt.php ('include' includes/banners.php)
    ↳ includes
        ↳ banners.php

(致命错误:调用未定义函数in_category()):

wp-content/themes/avada-child
    ↳ archive.php ('get_template_part' templates/blog-layout.php)
    ↳ templates
        ↳ blog-layout.php ('include' includes/banners.php)
    ↳ includes
        ↳ banners.php

#1


我将include更改为get_template_part(), 然后又重新工作了。为了做到这一点, 我不得不将文件名修改为blog-banners.php。

get_template_part('includes/blog', 'banners');

但是, 我无法解释为什么二十三个十三中的include内的WordPress核心功能可以正常工作, 但是在不同模板内的相同include内的相同WordPress核心功能却在Avada中产生了”未定义”错误。这两个主题都使用一系列的get_template_part()函数来结束插入条件的模板。唯一的区别是, 在其中插入我的include的Avada模板位于主题的子目录中, 但在《二十三个》中, 它位于主题的根目录中。

在有人发布更好的答案来详细解释此致命错误之前, 我将接受自己的答案。

赞(0)
未经允许不得转载:srcmini » WordPress调用未定义函数in_category()

评论 抢沙发

评论前必须登录!