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';

【WordPress调用未定义函数in_category()】工作方式:
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模板位于主题的子目录中, 但在《二十三个》中, 它位于主题的根目录中。
在有人发布更好的答案来详细解释此致命错误之前, 我将接受自己的答案。

    推荐阅读