2015-11-21 37 views
-2

我需要更改Wordpress主題function.php文件,所以它會顯示自定義名稱的前端,這是不同於後編輯器/ URL中的標題。WordPress的 - 在前端不同的帖子標題比在url

例如:在文本編輯器/ URL中的帖子標題是「紐約」,但在前端將顯示「紐約 - 從不睡覺的城市」。原因是爲了縮短基本元數據的URL,並在前端保留「fancy name」(帖子,檔案,網站地圖,搜索結果...)。對於「花哨的名字」,我想從Yoast SEO插件中使用SEO標題。

在我的情況下,頁面是基於WordPress的帖子類型。所以我需要定義一些不應該受到影響的帖子(頁面)ID池。最好的解決方案也不會影響列出的ID下的所有後代頁面。

問題是我該如何修改function.php文件?

社區注意事項:如果您發現我的問題不明確,請在您將問題標記爲脫離主題之前寫下評論,以便我可以對其進行調整並使其更好。

回答

1

如果我知道你想正確的,你可以把這個代碼在你的主題

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); 

這的functions.php將檢查後得到了SEO題集。如果是的話,它會被使用,如果不是的話 - 它將使用常規的帖子標題。

+0

聽起來不錯!如果這是如此簡單;-)我只是嘗試它和Wordpress顯示錯誤:'致命錯誤:不能使用函數返回值在函數中的函數返回值在27行函數.php和第27行是你的代碼'返回(( !get_post_meta($ id,'_yoast_wpseo_title',true)))?get_post_meta($ id,'_yoast_wpseo_title',true):$ title); '無論如何,非常感謝你的幫助! - Pavel 6分鐘前 – Pavel

+0

@Pavel我不好意思,在5.5之前的php中忘記了這件事。編輯。現在試試。 –

+0

太棒了!現在它可以工作。但是,我沒有意識到它也會影響頁面,這意味着我的菜單中充滿了長標題名稱,導致菜單項溢出。所以我想請你修改帖子的代碼!感謝您對此宣傳單的幫助!你是國王;-) – Pavel