2013-10-09 77 views
4

我想獲得一個頁面的特色圖像alt和回聲它作爲段落文本,但我的代碼似乎並沒有工作。獲取WordPress的精選圖像「alt」

我目前能夠回顯圖像,它的工作完美。

下面是我使用的代碼:

<?php 
    get_header(); ?> 
     </div> 
    <?php /* The loop */ ?> 
   <?php while (have_posts()) : the_post(); ?> 
   <div class="header-image"> 

   <?php echo get_the_post_thumbnail($page->ID, 'full'); ?> 
    
   <?php $alt = get_post_meta($attachment_img->ID, '_wp_attachment_image_alt', true); ?> 
    
   <p><?php echo $alt; ?></p> 
    
   </div> 
+0

你有一個名爲與帖子相關聯'_wp_attachment_image_alt'自定義字段?另外,我建議你在你回顯之前做'var_dump($ alt)',這樣你就可以看到它是否爲null和它的類型。 –

+0

嗨,不,我沒有任何自定義字段,它應該從特色圖像屬性中提取alt – babusi

+1

您是否試圖獲取該帖子或頁面的精選圖像?您可以檢查$ attachment_img-> ID並查看如果它有正確的ID?或任何價值? –

回答

4

這裏有一個solution

$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>'; 
    } 

或者你可以使用你的代碼,但不是呼應$alt直接需要呼應$alt->post_excerpt

9

檢查您是否得到正確的縮略圖ID。
對於我這個代碼工作完美:

$thumbnail_id = get_post_thumbnail_id($post->ID); 
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true); 
+0

每次使用此代碼時,它都會將ID輸出到屏幕上。我如何阻止它這樣做? – pixelkicks

+0

奇怪。你確定這兩條線是這樣做的嗎?這些功能都沒有打印任何東西。只有** get_post_thumbnail_id'和'get_post_meta'都返回**值(不顯示它們)。你能粘貼你的代碼嗎? – gregmatys

+0

想通了,我使用the_id()而不是輸出帖子ID。哎呀。 – pixelkicks

相關問題