2012-12-10 78 views
1

使用Wordpress,您可以添加一個鉤子到「the_content」。在我的代碼中看起來像這樣。限制WordPress的'「the_content」過濾器

add_filter("the_content", some_func); 

所以,在WordPress的每次有一個帖子「some_func」得到運行。所以,讓我們說「some_func」看起來像這樣。

function some_func($content) { 
    return $content . "<div id='my_div'></div>"; 
} 

使用ID屬性表示只能有一個HTML元素。會發生什麼呢,這個函數會在數據庫中的每個帖子都運行。這意味着如果我有兩個帖子,那麼我有兩個ID爲「my_div」的div,如果我有依賴這些ID的Javascript,那麼Javascript將無法正確運行。相同的CSS。

所以,我需要的是讓這個功能運行一次而不超過一次的方法。任何人都知道一種方式,可能是一個包裝,或者我應該使用不同的過濾器?

+0

你可以使用類而不是ID? – bozdoz

+0

這是我的備份選項。我不得不花費重構代碼的時間是數週。如果我能找到一個簡單的解決方法,我寧願這樣做。 –

回答

2

我沒有測試過這一點,但也許你可以添加到您的some_func函數的頂部:

remove_filter('the_content', 'some_func');

從理論上講,它會調用一次過濾網和後取下過濾器第一次通話。

+0

謝謝,我將需要運行一次的代碼與需要重複的代碼分開。工作完美,非常感謝。 –