2017-01-23 52 views
1

我使用以下函數(在我的Wordpress兒童主題功能文件以及插件中都嘗試過 - 在兩種情況下都可以使用)從帖子標題中刪除主題標籤。這個函數做了我想要的,但是所有的標題(帖子正文內容都可以,只是標題)現在正在顯示字符的HTML數字(即'= & 8217;和& = & 038;和 - = & 8211;)。我的php函數做我想要的,但輸出將字符轉換爲ASCII

所以這個標題

這#testing的&和撇號#tagstitle #cats #cat #instagramcats

成爲

這& 8217; S測試& 038;和撇號

它根據需要刪除主題標籤,但創建字符問題。

function remove_hashtags($string){ 
    return preg_replace('/#(?=[\w-]+)/', '', 
    preg_replace('/(?:#[\w-]+\s*)+$/', '', $string)); 
} 
add_filter('the_title', 'remove_hashtags'); 

我試圖增加額外的代碼:PHP上讀了(我只是學習)後

html_entity_decode('the_title', ENT_QUOTES | ENT_XML1, 'UTF-8'); 

的功能,但它似乎沒有工作,我不知道如何使用

html_entities($string) 

(問題的更新加入更多的信息)

我基本上採取了代碼here - 那正是我所需要的。我只是添加了過濾WordPress帖子標題的最後幾行。

我不想讓它太複雜的問題,但理想情況下,我想從文本中刪除標籤並實際上從它們創建帖子標籤。我發現了每個部分的幾個答案,我只是不知道如何把它放在一起。忘記,雖然...我真的只是想知道爲什麼突然之間ascii號碼正在取代原標點符號。

+3

爲什麼不只是str_replace函數(「#」,「」,$字符串),而不是正則表達式?此外,你的回報是在第二個preg_replace之前,這意味着它永遠不會執行。 – Kaylined

回答

0

如果你只是想刪除主題標籤,你可以使用str_replace("#","",$string);

相關問題