strip_tags()
僅刪除HTML標籤 - 在你的情況下,它會改變從
Some Text <a href="http://someurl.com">LINK</a> Other Text
到Some Text LINK Other Text
如果我理解正確的稱號,這是你想要什麼:
function ib_remove_links_from_titles($title) {
$title = preg_replace('/<a([^<]*)">([^<]*)<\/a>/', '', $title);
return $title;
}
add_filter('the_title', 'ib_remove_links_from_titles');
用上面的例子會輸出Some Text Other Text
注意,因爲你試圖用strip_tags()
來完成任務,我假設了「harcoded網址」,因爲你描述的他們,被封閉在<a [...] ></a>
標籤。如果不是這種情況,您需要一個與URL匹配的正則表達式。這是非常棘手的,取決於你的作者使用的URL是否國際化/有不同的域名,不僅僅是http:// prefaced等等。
我擔保上面的工作,如果他們被封閉在標籤,如果沒有,這個表達式將趕上最網址,但說到沒有我保證在任何情況下工作:
(([A-Za-z]{3,9})://)?([-;:&=\+\$,\w][email protected]{1})?(([-A-Za-z0-9]+\.)+[A-Za-z]{2,3})(:\d+)?((/[-\+~%/\.\w]+)?/?([&?][-\+=&;%@\.\w]+)?(#[\w]+)?)?
你」 d已經將上述函數中的'/和/'放在了。
我試着在專題子主題中的代碼,並在函數內執行了一個die語句,它工作。你還有問題嗎? – awats 2011-05-05 23:24:54
問題的一部分是strip_tags沒有做我認爲它做的事。如果我在我的子主題中包含關閉?>標記而不包含結束標記,那麼也會出現差異。必須進一步調查。 – user515663 2011-05-20 14:08:17