Constico主题页面标题H5改H1:子主题修改后函数重复调用报错
解决Constico主题页面标题H5改H1的问题
不要直接复制父主题
/inc/template-tags.php到子主题,这会触发函数重复定义报错,而且WordPress不会自动用子主题inc目录下的文件覆盖父主题对应文件。正确操作步骤:
打开父主题的
/inc/template-tags.php,定位输出页面标题的函数(比如假设函数名为constico_single_title),确认它的调用方式:- 查看函数是否通过
add_action挂载到某个钩子上,例如add_action('constico_entry_header', 'constico_single_title'); - 或者是否直接在模板文件(如
single.php、page.php)中被调用,例如<?php constico_single_title(); ?>
- 查看函数是否通过
根据实际情况处理:
如果函数通过钩子挂载
在子主题的functions.php中添加以下代码(注意替换实际的钩子名和函数名):// 移除父主题的标题输出钩子 remove_action('constico_entry_header', 'constico_single_title'); // 重新定义标题输出函数,将H5改为H1 function constico_single_title() { echo '<h1 class="entry-title">' . get_the_title() . '</h1>'; } // 将新函数挂载到原钩子上 add_action('constico_entry_header', 'constico_single_title');如果函数直接在模板中调用
找到调用该函数的模板文件(比如single.php),将父主题的这个模板文件复制到子主题对应目录下,然后修改文件里的标题标签,把<h5>替换为<h1>。
若函数输出支持过滤器,可更简洁修改:
如果原函数里有apply_filters相关代码,直接在子主题functions.php中添加过滤器替换标签:add_filter('constico_single_title_html', function($output) { return str_replace(['<h5', '</h5>'], ['<h1', '</h1>'], $output); });
注意:代码中的钩子名称、函数名要和父主题实际代码完全匹配,需根据
template-tags.php里的内容调整。
内容的提问来源于stack exchange,提问作者dc crage
相关产品推荐
相关产品推荐

