我需要更改Wordpress主题function.php文件,这样它就会显示前端帖子的自定义名称,这与帖子编辑器/ URL中的标题不同。
例如:文本编辑器/网址中的帖子标题是"纽约"但在前端将显示"纽约 - 从不睡觉的城市"。这样做的原因是缩短基本元数据的URL并保持"花哨的名称"仅在前端(帖子,档案,站点地图,搜索结果......)。对于"花哨的名字"我想使用Yoast SEO插件的SEO标题。
在我的情况下,页面基于Wordpress帖子类型。所以我需要定义一些不应受影响的帖子(页面)ID。最佳解决方案也不会影响列出的ID下的所有后代页面。
问题是如何修改function.php文件?
社区注意事项:如果您认为我的问题不明确,请在您将问题标记为偏离主题之前撰写评论,以便我可以对其进行调整并使其更好。
答案 0 :(得分:1)
如果我理解您的想法,可以将此代码放入主题的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);
这将检查帖子是否获得了SEO标题集。如果是,它将被使用,如果没有 - 它将使用常规的帖子标题。