我的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模板位于主题的子目录中, 但在《二十三个》中, 它位于主题的根目录中。
在有人发布更好的答案来详细解释此致命错误之前, 我将接受自己的答案。
推荐阅读
- WordPress(无法更改`the_widget` args)
- WordPress的boostrap导航导航栏自动折叠,未处于打开状态
- linux 文件系统
- linux dns的部署
- linux 密码破解
- linux 用户和用户组
- 15 路由配置
- 递归及相关习题
- vim编辑器