2013-12-18 19 views
1

我的網站我一直在使用的功能設置後摘錄長度:刪除帖子摘錄對於特定的網頁

add_filter('excerpt_length', 'my_excerpt_length'); 
function my_excerpt_length($len) { return 125; } 

這臺普遍在整個網站後摘錄長度。但是,對於特定的頁面ID,Id喜歡顯示帖子的全長。

我的想法是,包括和ELSEIF類似於:

function my_excerpt_length($len) { 
    if (is_page(39370)) { 
     return 1000; 
    } else { 
     return 125; 
    } 
} 

我想這個代碼將設置爲這個特定頁面足夠長的全文後應該表現摘錄的長度,但有另一種方式來完成這將確保顯示完整的帖子?

回答

2

可以使用get_the_excerpt()過濾器與內容替換摘錄:

add_filter('get_the_excerpt', 'so20668477_get_the_excerpt', 10, 1); 
function so20668477_get_the_excerpt($excerpt) 
{ 
    if(is_page(39370)) 
     $excerpt = apply_filters('the_content', get_the_content()); 

    return $excerpt; 
} 
+0

我試過這種方法,將這個新功能添加到我的孩子主題中,並且它確實堵塞了我的頁面。不知道我是否缺少一些東西。另外,10,1代表什麼? – user3116834

+0

應該工作。打開'WP_DEBUG'並檢查你得到的錯誤。 '10'是過濾器的優先級,'1'是傳遞參數的n°,參見http://codex.wordpress.org/Function_Reference/add_filter#Parameters – diggy

+0

是的,我必須在今天安裝dev環境,直接工作活的網站,並且它獲得了大量的流量。感謝您的幫助,我將繼續處理本主題中發佈的建議。這個線程將向您展示我如何實現您發送的代碼的更多細節:http://bit.ly/1bf6v4f – user3116834

0

您可以使用:

is_page('page'); 

其中'page'是文章標題

相關問題