2015-05-28 107 views
1

我需要用自定義元描述替換由header.php中wp_head()函數生成的現有<meta name="description"...>。頁面中的信息不是一個普通的WordPress的帖子,來自外部的數據庫。 我可以加我的自定義元,但是舊的也有Wordpress替換元描述

function add_meta_tags() 
{ 
    global $data; 
    if(!is_null($data['metas']['page_meta_description'])) 
    { 
     echo '<meta name="description" content="'.$data['metas']['page_meta_description'].'">'; 
    } 
} 
add_action('wp_head', 'add_meta_tags'); 

有沒有什麼辦法: - 刪除與 function.php一個動作或過濾器的默認元描述?或者, - 在呈現之前以某種方式替換元描述的值?

回答

2

描述元標記通常由模板標題(header.php)或通過將描述添加到網站(例如SEO標題標記)的插件來處理。既然你得到了重複的描述,你應該檢查輸出描述標籤的插件。

對於其他惱人的元標記和其他東西放在頭,你可以使用remove_action()函數模板的functions.php文件來做到這一點,可以看看這裏的文檔:https://codex.wordpress.org/Function_Reference/remove_action

我爲我運行的WP網站做了類似的事情,需要刪除每個進入頭部的元標記,這裏是我的functions.php文件底部的代碼:

// Remove Meta Tags that are Unneeded 
remove_action('wp_head','feed_links_extra', 3); 
remove_action('wp_head','rsd_link'); 
remove_action('wp_head','feed_links', 2); 
remove_action('wp_head','wlwmanifest_link'); 
remove_action('wp_head','index_rel_link'); 
remove_action('wp_head','parent_post_rel_link', 10, 0); 
remove_action('wp_head','start_post_rel_link', 10, 0); 
remove_action('wp_head','adjacent_posts_rel_link', 10, 0); 
remove_action('wp_head','noindex'); 
remove_action('wp_head','wp_generator'); 
remove_action('wp_head','rel_canonical'); 
remove_action('wp_head', 'wp_shortlink_wp_head'); 

顯然,只使用你需要的!我無法找到meta標籤所有功能的列表,所以我想包括所有我使用的功能。

+0

這似乎是我正在尋找的,但我是一個菜鳥,當涉及到WP。我需要尋找負責元描述的操作。 – Scarpelius

+0

還檢查您的插件的任何輸出不需要的元標記 - 搜索引擎優化標題標籤和其他人會做到這一點。另外,這個模板也可能在header.php – Jack

+0

中這樣做,我解決了你的問題 - 我忘記了描述是非常少的事情之一。 – Jack

1

安裝Yoast插件,您將能夠通過手動將其標記爲您想要顯示在搜索引擎結果頁上的元標記。

0
function remove_meta_descriptions($html) { 
    $pattern = '/<meta name(.*)=(.*)"description"(.*)>/i'; 
    $html = preg_replace($pattern, '', $html); 
    return $html; 
} 
function clean_meta_descriptions($html) { 
    ob_start('remove_meta_descriptions'); 
} 
add_action('get_header', 'clean_meta_descriptions', 100); 
add_action('wp_footer', function(){ ob_end_flush(); }, 100);