Wordpress - 前端的 post 标题与 url 中的不同

Wordpress - different post title on frontend than in url

我需要更改 Wordpress 主题 function.php 文件,以便它在前端显示 post 的自定义名称,这与 post editor/URL 中的标题不同。

例如:Post 文本 editor/url 中的标题是 "New York" 但在前端将显示 "New York - never sleeping city"。这样做的原因是将 URL 缩短为基本元数据并仅在前端保留 "fancy name"(posts、档案、站点地图、搜索结果...)。 "fancy name" 我想使用 Yoast SEO 插件的 SEO 标题。

在我的例子中,页面基于 Wordpress posts 类型。所以我需要在某个地方定义不应该受到影响的 posts(pages) ID 池。最好的解决方案也是不影响列出的 ID 下的所有后代页面。

问题是我应该如何修改function.php文件?

社区注意事项:如果您认为我的问题不清楚,请在将我的问题标记为 off-topic 之前发表评论,以便我对其进行调整并使其变得更好。

如果我理解正确,您可以将此代码放在主题的 functions.php

function set_my_seo_title($title, $id)
{
    global $post;
    $seo_title=get_post_meta($id, '_yoast_wpseo_title', true);         
    return ((!empty($seo_title)&&$post->post_type=='post') ? $seo_title : $title);
}

add_filter('the_title', 'set_my_seo_title', 15, 2);

这将检查 post 是否设置了 SEO 标题。如果是,它将被使用,如果不是 - 它将使用常规 post 标题。