2016-01-22 55 views
-2

我有一個使用Yoast SEO管理規範鏈接noindex元機器人,除其他事項外,具有非常奇特配置的WordPress站點。如何選擇帖子類型(Wordpress)在頭部傳遞過濾器?

默認情況下,Yoast的插件在每個頁面中添加一個<link rel="canonical" href="...">。我不感興趣的節目,在每一個靜態頁面(無論其類型)的規範鏈接,但在某些職位類別:帖子(不Attatchment,分類,歸檔等)

我知道阻止Yoast默認添加規範鏈接的方法,只需在functions.php中添加以下代碼:add_filter('wpseo_canonical', '__return_false');。但是如果我只是想在某些帖子類型中傳遞該過濾器呢?或者將它傳遞到除了某些類型的帖子之外的每個頁面中(這兩種方法對我都有用)。幫助將會非常令人滿意。任何?

更新:有一些小的修正

function remove_canonical_from_post_types($url) { 
    $post_type = get_post_type(); 
    if ($post_type !== 'post' && $post_type !== 'page') { // If post type is not Post nor Page, doesn't add a canonical link in any case 
     return false; 
    } 
    else { // It is Post or Page 
     if (is_category() || is_author() || is_tag() || is_archive()) { // If page is post type 'Post' we don't want to add canonical in some sub-types: Category, Author, Tag, Archive 
      return false; 
     } 
     return $url; // In any other case (Posts and Pages) adds a canonical link 
    } 
} 
add_filter('wpseo_canonical', 'remove_canonical_from_post_types'); 
+0

檢查用'get_post_type()'函數? – RST

+0

我試過了: '$ post_type = get_post_type($ post);如果($ post_type!='page'|| $ post_type!='post'){ add_filter('wpseo_canonical','__return_false'); };' ,沒有,過濾器仍然是影響到每一個靜態頁面(不添加在網頁和帖子規範鏈接) – jgueper

+0

變化''||爲''&&我 – RST

回答

1

嘗試有效的答案使用所提供的「wpseo_canonical」過濾器和檢查有正確的崗位類型(以及返回false那裏)。

事情是這樣的:

function remove_canonical_from_post_types($url) 
{ 
    $post_type = get_post_type(); 

    if ($post_type !== 'post' && $post_type !== 'page') { 
     return false; 
    } 

    return $url; 
} 
add_filter('wpseo_canonical', 'remove_canonical_from_post_types'); 
+0

它的作用就像一個魅力,謝謝! – jgueper

+0

確實,這正是我需要的!謝謝! –

相關問題