關閉WordPress對自己網站的Pingback通知

一般部落格文章內有提到某部落格或是網站的網址,都會發送Pingback通知其它網站,告知他們你有引用到他們的文章或是有提及,這樣的做法某種程度上可以順便增加自己的曝光率,當然也可以告知對方我們引用了部分內容。不過這樣的服務到是有一點小小的缺陷,因為他不會判斷網站是誰的,一律發送通知。

全部發送通知會造成什麼結果呢?如果是別人的網站,通常會在留言區出現你的文章標題、超連結以及部分文字,但是,因為網站不分的關係,當你文章內有提及自己的網站,也會收到自己網站的通知,這樣感覺是不是有點奇怪?目前有外掛可以解決這個問題,但是香腸比較推薦使用代碼來解決問題。


以前,有介紹過WordPress的Ping服務,這個服務如果啟動的話,當你發了新文章的同時,它可以幫你通知清單網址內的網站,告知他們你網站有新文章可以來收錄了。這樣做有什麼好處呢?當然就是增加網站被收錄的機會,既然搜尋引擎或是一些網站不來爬你網站內容,哪你就主動告知他們有新文章,邀請他們來收錄你的文章囉!

不過這回要講的是關於Pingback,這個服務是一個可以通知別人網站說你引用他的文章,簡而言之,只要文章內有提及到別人部落格並有附上網址,並且有啟用Pingback功能的話,那們所提到的網址都會自動發送Pingback到該網站,通知該網站您已經引用他的文章了。可是,當這樣的通知,自己發給自己是不是很怪?接下來就要教大家怎麼關閉!

關閉WordPress對自己網站的Pingback通知

〈▲ 在WordPress後台Pingback服務設定介面〉

透過代碼關閉Pingback給自己

如果您在WordPress後台的「設定→討論」設定介面中,有將「嘗試通知文章中鏈結到的其他網誌文章」和「允許其他網誌站台對文章發送引用及通告」同時打勾的話,您就會發生自己Ping給自己的問題。想要讓自己無法傳送Pingback給自己,那請開啟您現在正在使用的佈景主題中「functions.php」檔案,將以下語法加入,以不破壞原本結構為原則。這樣就可以解決問題了,這段代碼是摘自No Self Pings外掛,如果您嫌棄改代碼太麻煩,也可以直接安裝No Self Pings外掛。

function prohibit_self_pingback( &$links ) {
   $home = get_option( 'home' );
   foreach ( $links as $l => $link )
    if ( 0 === strpos( $link, $home ) ) unset($links[$l]);
}
add_action( 'pre_ping', 'prohibit_self_pingback' );

關閉WordPress對自己網站的Pingback通知