2014-03-18 41 views
0

我有一個函數可以獲取帖子中的整體字數。Wordpress字數以排除短碼?

function ic_word_count() { 
    global $post; 

    $ic_content = strip_tags( $post->post_content); 
    $ic_stripped = strip_shortcodes($ic_content); 
    return $ic_stripped; 
} 

我試圖讓它排除所有短代碼,所以基本上排除任何東西與方括號和他們之間的一切。例如排除[shortcode][This Shortcode]

有關如何將該部分添加到上述功能的任何想法?

回答

0

WordPress有一個方便的功能,strip_shortcodes。 Codex詳細信息:https://codex.wordpress.org/Function_Reference/strip_shortcodes

您的功能使用$post->ID但您沒有獲取全球后處理值。

最後,您已經可以訪問全局$ post對象中的發佈內容,因此只需使用該內容而不是get_post_field。

E.g. global $post;

function ic_word_count() { 
    global $post; 

    $wc_content = $post->post_content; 
    $ic_word_count = str_word_count(strip_tags(strip_shortcodes($wc_content))); 

    return $ic_word_count; 
} 

一個較小的版本:

function ic_word_count() { 
    global $post; 

    return str_word_count(strip_tags(strip_shortcodes($post->post_content))); 
} 
+0

我得到的0字計數時,我再補充一點片段在那裏。 –

+0

只是爲了確認你仍然將結果賦值給一個變量。我會更新我的答案,以清楚地說明順便說一句。如果是這樣,請添加以下代碼行,並讓我知道是否有任何輸出。 'echo strip_tags(strip_shortcodes($ wc_content));' –

+0

我確實將它分配給一個變量。我回應了整個函數,所以我仍然通過這個'<?php echo ic_word_count()獲得0計數。 ?> –