You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WP站点多页面H1标题自定义修改需求及代码咨询

嘿,刚好我之前处理过类似的WP标题自定义需求,给你两个实用方案,按需选就行!

方案一:用自定义字段实现单篇文章独立自定义标题(最灵活)

这是最推荐的方式,能让你在后台编辑每篇文章时,单独设置和页面名称不一样的标题,完全按需定制:

  1. 开启自定义字段面板:在文章编辑页右上角点「选项」(三个点的按钮),勾选「自定义字段」,这样编辑页面底部就会显示自定义字段区域。
  2. 添加自定义标题字段:给需要改标题的文章添加一个新字段,键名设为 custom_post_title(你也可以自己取个好记的名字,比如 post_custom_headline),值就是你想要显示的自定义标题。
  3. 修改你的现有代码:把原来的标题过滤逻辑改成优先读取这个自定义字段,代码如下:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:23:34