WordPress 2.0無法 trackback時的簡易檢查

雖然之前我有針對 WordPress 2.0 無法trackback時,整理了一個簡單的解決方案,不過還是陸陸續續有人反映一樣trackback不出去。

這些不管是用email,還是直接在迴響裡反映的人,有的是因為直接把 diff 檔覆蓋掉原來的source(所以我後來又釋出了已經patch過的版本),有的則是說改過了還是不行。想一想,我決定談談我自己碰到無法trackback時,如何檢查這個狀況。

由於 WP 2.0的 trackback機制是把從資料庫中,第一篇到最後一篇文章裡還沒成功發出去的trackback都再試一遍,所以當我們發布一篇新文章時,程式會去把資料庫中所有還沒成功 trackback出去的部份都再試一次。會不會,問題就出在這兒呢? 有一個很簡單的檢查方式:手動執行 trackback 的script。trackback script的位置在 [blog_url]/wp-admin/execute-pings.php,也就是說,以這個blog為例,trackback script的URL就在 http://blog.serv.idv.tw/wp-admin/execute-pings.php。使用browser連往這個URL,它會開始執行前述的trackback動作,在畫面上會看到:

Trackback : [IDOOO]
Trackback : [IDXXX]
Done.

其中[IDOOO]跟[IDXXX]是還有trackback沒送出去的文章的ID,如果全部送出去了,下次再執行的時候,應該就只剩下一行 “Done.”了。所以如果發現每一次執行手動trackback時都有某行 Trackback: [IDXXX]出現,就去該文章裡面看看,是不是有哪個trackback URL 現在早已不存在/掛了,導致trackback一直送不過去。

再來,檢查看看你的trackback是不是被紀錄為早已送出。

檢查要送出trackback的文章(可以在URL列輸入 [blog_url]/http://wp-admin/post.php?action=edit&post=[IDXXX]),看看trackback及already pinged 部份,如果要trackback的URL已經在already pinged,那麼WordPress 是不會執行trackback動作的。如果真的要再重送一次,可能要用到像phpMyAdmin之類的工具,到資料庫中去把對應的欄位修改掉才行。

如果已經被紀錄為ping 了出去,卻又沒有在對方的站台上看到。那很有可能是對方有安裝 Spam Karma這一類防堵trackback SPAM的plugin。在預設的選項之下,Spam Karma會檢查你送去的trackback,連回到你的文章裡,看看是不是真的有提到對方的URL,當在你的文章中找不到對方的URL時,就很容易被視為Spam。舉例來說,如果今天你寫了一篇看納尼亞傳奇的感想,然後發現某A也有寫一篇類似的感想。雖然你在文中沒有提到某A的那篇文章,可是你想要讓某A知道你也是心有戚戚焉,所以你輸入某A那篇文章的trackback URL,送了通trackback過去。但是某A所安裝的 Spam Karma檢查你的文章,發現沒有提到某A那篇文章的URL,就把你認定是Spam,因而沒有顯示出來。這個情況,也常讓我們誤以為trackback失敗了。

以上是數個我所想到可能發生的狀況,供大家參考。

在〈WordPress 2.0無法 trackback時的簡易檢查〉中有 7 則留言

  1. 自動引用通知: 美麗小旅館
  2. 自動引用通知: HEMiDEMi
  3. 自動引用通知: Lakers部落手記 » WP2.0 Trackback問題
  4. 自動引用通知: Julia 隨想閣
  5. 請問…對於 TrackBack 發送不出去..的問題,我己經解決了!
    但對於別站對我發送 TrackBack 我卻接收不到。

    1.對方在那篇 TrackBack 文章裡的有我站的 Url
    2.要 Permalink 我才能收到…
    3.我目前還沒有裝 Spam Karma,只有Bad Behavior
    4.我租用虛擬主機

    可否請求您,幫我方析一下問題究竟在哪裡好嗎?

    回覆

PipperL 發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料