WP站点多页面H1标题自定义修改需求及代码咨询
嘿,刚好我之前处理过类似的WP标题自定义需求,给你两个实用方案,按需选就行!
方案一:用自定义字段实现单篇文章独立自定义标题(最灵活)
这是最推荐的方式,能让你在后台编辑每篇文章时,单独设置和页面名称不一样的标题,完全按需定制:
- 开启自定义字段面板:在文章编辑页右上角点「选项」(三个点的按钮),勾选「自定义字段」,这样编辑页面底部就会显示自定义字段区域。
- 添加自定义标题字段:给需要改标题的文章添加一个新字段,键名设为
custom_post_title(你也可以自己取个好记的名字,比如post_custom_headline),值就是你想要显示的自定义标题。 - 修改你的现有代码:把原来的标题过滤逻辑改成优先读取这个自定义字段,代码如下:
add_filter('the_title', 'custom_post_and_service_title', 10, 2); function custom_post_and_service_title($title, $id) { // 先检查当前是否是单篇内容页面,且在主循环中(避免影响菜单、侧边栏等其他地方的标题) if (is_singular() && in_the_loop()) { // 读取自定义字段的值 $custom_title = get_post_meta($id, 'custom_post_title', true); // 如果自定义标题存在且不为空,直接返回它 if (!empty($custom_title)) { return $custom_title; } } // 保留你原来的服务类文章标题修改逻辑(这里按你原有需求调整即可) if (is_singular('service') && in_the_loop()) { $title = '【服务】' . $title; // 这里替换成你原来的服务类标题规则 } // 非文章页面直接返回原有标题 return $title; }
这段代码的逻辑是:先看有没有自定义标题→有就用;没有的话再走你原来的服务类文章规则;非文章页面完全保留原标题,完美兼容你的现有需求。
如果觉得手动输自定义字段键名麻烦,可以装个可视化的自定义字段插件,它能在后台生成友好的输入框,不用手动敲键名。
方案二:批量/条件式自定义标题(适合特定规则的场景)
如果你不想给每篇文章单独设置,而是想给某类文章(比如特定分类、标签、自定义文章类型)批量设置标题规则,可以用这种方式:
add_filter('the_title', 'conditional_custom_post_title', 10, 2); function conditional_custom_post_title($title, $id) { if (is_singular() && in_the_loop()) { // 示例1:给特定ID的文章设置固定自定义标题 $specific_post_titles = [ 123 => '这是文章ID123的自定义标题', 456 => '文章ID456的专属标题' ]; if (isset($specific_post_titles[$id])) { return $specific_post_titles[$id]; } // 示例2:给「推荐」分类的文章加前缀 if (has_category('推荐', $id)) { return '★ 推荐:' . $title; } } // 保留原有服务类文章逻辑 if (is_singular('service') && in_the_loop()) { $title = '【服务】' . $title; } return $title; }
注意事项
- 不管用哪种方案,都建议把代码放到子主题的functions.php里,或者用「代码片段」插件添加,避免主题更新时代码被覆盖。
is_singular()会匹配所有单篇内容页面(文章、页面、自定义文章类型),如果只想针对文章(post类型),可以改成is_single()。
内容的提问来源于stack exchange,提问作者crjo
相关产品推荐
相关产品推荐

