如何获取WordPress的archive_title?可用什么函数获取当前页面标题?
问题原因
你遇到的问题是PHP基础语法错误导致的,核心问题有两处:
- PHP 中所有变量调用时都必须带
$前缀,你代码里echo title_var_to_check;和if(title_var_to_check == "string to check")两处都漏写了变量前缀$,PHP 识别不到这是变量,会默认把它当做未定义的常量处理,直接输出常量名的字符串,就是你看到的页面上显示的"title_var_to_check"文本。 - 额外注意:
get_the_archive_title()返回的内容默认会带归档类型前缀,比如分类归档会返回「分类:目标标题」、标签归档会返回「标签:目标标题」,如果你要匹配的是纯标题文本,需要要么匹配字符串时带上对应前缀,要么提前过滤掉前缀。
修正后的代码
elseif ( is_archive() || is_home() ) { the_archive_title( '<h1 class="page-title archive-title">', '</h1>' ); // 自定义代码开始 $title_var_to_check = get_the_archive_title(); // 测试用的输出,调试完成后可以删除 // echo $title_var_to_check; if( $title_var_to_check == "你要匹配的完整标题字符串" ){ // 这里可以写你要执行的逻辑,比如引入指定PHP文件 get_template_part( '你要引入的PHP文件相对路径' ); // 也可以直接输出描述文本 echo '<p>你要添加的描述文本</p>'; } // 自定义代码结束 }
补充注意事项
- 如果不需要匹配归档前缀,可以用下面的代码获取纯标题文本再做匹配:
$title_var_to_check = wp_strip_all_tags( get_the_archive_title() ); $title_var_to_check = preg_replace( '/^[\w]+: /u', '', $title_var_to_check );
- 修改主题文件前建议先做备份,优先用子主题修改,避免主题更新后自定义代码被覆盖。
内容的提问来源于stack exchange,提问作者Ashmin
相关产品推荐
相关产品推荐

