【问题标题】:Wordpress - different post title on frontend than in url [closed]Wordpress - 前端的帖子标题与网址中的不同[关闭]
【发布时间】:2015-11-21 11:28:32
【问题描述】:

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

例如:文本编辑器/网址中的帖子标题是“纽约”,但在前端会显示“纽约 - 永不沉睡的城市”。这样做的原因是将 URL 缩短为基本元数据,并仅在前端(帖子、档案、站点地图、搜索结果......)上保留“花哨的名称”。对于“花哨的名字”,我想使用 Yoast SEO 插件中的 SEO 标题。

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

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

社区注意事项:如果您认为我的问题不清楚,请先发表评论,然后再将我的问题标记为离题,以便我对其进行调整并使其变得更好。

【问题讨论】:

    标签: wordpress post seo title


    【解决方案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 标题。如果是,它将被使用,如果不是 - 它将使用常规帖子标题。

    【讨论】:

    • 听起来不错!如果这很简单;-) 我刚刚尝试过,Wordpress 显示错误:Fatal error: Can't use function return value in write context in functions.php on line 27 和第 27 行是您的代码return ((!empty(get_post_meta($id, '_yoast_wpseo_title', true))) ? get_post_meta($id, '_yoast_wpseo_title', true) : $title); 无论如何,感谢您到目前为止的帮助! – Pavel 6 分钟前
    • @Pavel 我的错,在 5.5 之前的 php 中忘记了这件事。已编辑。立即尝试。
    • 太棒了!现在它起作用了。但是,我没有意识到它也会影响页面,这意味着我的菜单充满了长标题名称,这使得菜单项溢出。所以我想请你只修改帖子的代码!感谢您对本传单的帮助!你是国王;-)
    • 谢谢传单 ;-) 我确实尝试过,但它再次影响页面,你可以在这里看到 snag.gy/m57Uo.jpg :-( 我确实尝试清理缓存和不同的浏览器,但问题无处不在。还有其他想法吗?
    • @Pavel 你确定这些东西实际上是页面而不是帖子吗?因为我测试了它,它对我来说很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多