2012-08-10 141 views
2

因此,我設置了我的wordpress主題以允許用戶上傳精選圖像,並構建我的索引頁以顯示選定頁面的精選圖像,但也想顯示圖像的說明。如何從我的wordpress頁面獲取精選圖片描述?

事情是,我沒有使用循環,我拉動頁面ID使用WordPress的設置API作爲選項。

所以顯示功能的圖像就像下面這樣:

<?php $bucket_options = get_option('frontpage_display_options'); ?> 
<?php $page_one = $bucket_options['frontpage_bucket_one']; ?> 
<?php $page_one = get_post($page_one); ?> 
<?php if (has_post_thumbnail($page_one->ID)) : ?> 
     <?php echo get_the_post_thumbnail($page_one->ID, 'bucket'); ?> 
<?php endif; ?> 

我繼續讀,這將工作:

echo get_post(get_the_post_thumbnail_id($page_one->ID))->post_content; 

或本:

echo get_post(get_the_post_thumbnail($page_one->ID))->post_content; 

但他們都沒有顯示任何東西

+0

不是一個答案,但而不是打開和關閉整個PHP模式,只需打開一次並關閉一次即可。 – PeeHaa 2012-08-10 19:12:51

+0

哦,我知道,我總是看到這樣的wordpress代碼,並認爲這是最好的做法。個人它困擾我 – rugbert 2012-08-10 19:54:54

+3

如果你看到wordpress中的任何東西,你必須做相反的,如果你想防止不好的做法。真實的故事。 – PeeHaa 2012-08-10 19:55:41

回答

6

這種能力正在等待一個新版本:http://core.trac.wordpress.org/ticket/12235

但一個解決方案,圍繞浮在functions.php中創建一個函數:

function the_post_thumbnail_caption() { 
    global $post; 

    $thumbnail_id = get_post_thumbnail_id($post->ID); 
    $thumbnail_image = get_posts(array('p' => $thumbnail_id, 'post_type' => 'attachment')); 

    if ($thumbnail_image && isset($thumbnail_image[0])) { 
    echo '<span>'.$thumbnail_image[0]->post_excerpt.'</span>'; 
    } 
} 

然後調用the_post_thumbnail_caption();

+0

太好了,謝謝!我修改了一下,接受了一個帖子ID,因爲我的東西不是在一個循環中,但它完美的工作! – rugbert 2012-08-10 20:51:46

+1

這會輸出標題,而不是描述。對於其他任何想要如何輸出描述的人來說,除了將「post_excerpt」更改爲「post_content」之外,其他人都是如此。 – 2014-04-17 21:53:51

+0

在撰寫本文時,這是在WP內核中實現的,所以您不必定義該函數,只需通過'the_post_thumbnail_caption()'描述使用它。 – kontur 2017-10-24 11:09:07

相關問題