2015-09-16 150 views
1

你好,stackoverflow的人,我需要幫助。我正在使用wordpress,不知何故我不能使用此功能:帖子摘錄不工作

$post_id = 12; 
    echo get_post($post_id)->post_excerpt; 

不知何故,它不打印任何東西。這是完整的div。你能幫我解決這個問題嗎?

   <div id="block1"> 
        <div class="inblock1"> 
         <h2>About boots</h2> 
         <p><?php $post_id = 12; 
echo get_post($post_id)->post_excerpt; ?> </p> 
         <a href="/about-boots/" class="rodykle">apac</a> 
        </div> 
       </div> 
+4

你確定數據庫中的'post_excerpt'列不是空的嗎? –

+1

'post_excerpt'屬性是指數據庫中的摘錄字段 - 所以如果你沒有手動設置它是空的。 – vard

+0

有一個[wordpress stack exchange](http://wordpress.stackexchange.com/)網站專門針對這些類型的問題。如果這沒有幫助,你可能會有更好的運氣。 –

回答

5

這聽起來像你實際上沒有爲這篇文章設置摘錄。您可以隨時使用條件進行測試,並輸出一個自定義的摘錄(從post_content)如果不存在:

$my_post = get_post($post_id); 
// If the excerpt is empty, generate one from post_content, else display the saved excerpt 
echo empty($my_post->post_excerpt) ? wp_trim_words($my_post->post_content, 55, '...') : $my_post->post_excerpt; 

瞭解更多關於wp_trim_words() in the Codex

3

您可能需要使用setup_postdata()因爲<?php $post_id = 12; echo get_post($post_id)->post_excerpt; ?>將返回摘錄,如果你有摘錄領域,但低於代碼摘錄數據將返回從內容的數據,如果你沒有在摘錄現場數據。

$post_id = 12; 
$tempVar = $post; 
$post = get_post($post_id); 
setup_postdata($post); 

the_excerpt(); 

wp_reset_postdata(); 
$post = $tempVar; 
+0

什麼都沒有 - \t \t \t \t \t'

<?php $ post_id = 12; $ excerpt = apply_filters('the_excerpt',get_post_field('post_excerpt',$ post_id)); echo $ excerpt; ?>

' – McLaren

+0

你不應該在'the_excerpt()'中使用'echo'。 – rnevius