我的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模板位于主题的子目录中, 但在《二十三个》中, 它位于主题的根目录中。
在有人发布更好的答案来详细解释此致命错误之前, 我将接受自己的答案。
评论前必须登录!
注册