問題描述

我在這個示例小工具程式碼中遇到麻煩。我想從一個名為”Gallery” 的頁面中獲取所有影像 (縮小後的縮圖),但由於某種原因,這是從整個站點拉出所有上傳的影像。

另外,如何從此查詢中排除帖子縮圖?

  query_posts('pagename=gallery');
if (have_posts()) :
echo "<ul class='recentwidget group photowidget'>";
while (have_posts()) : the_post();
    $args = array(
    'post_type' => 'attachment',
    'numberposts' => 1,
    'post_status' => null,
    'post_parent' => $post->ID
);

$attachments = get_posts( $args );
    if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
       echo '<li class="left imageshadow photolarge">';
       echo wp_get_attachment_image( $attachment->ID, 'full' );
       echo '</li>';
      }
    }
endwhile;

endif;
wp_reset_query();

最佳解決方案

使用 get_children

我使用這個程式碼從選擇的順序從頁面庫中提取所有的影像。您可以將此程式碼包含在迴圈中或將其獨立使用。只需選擇適當的 post_parent 程式碼 (見程式碼示例) 。

此示例顯示與頁面 ID 1 相關聯的所有影像,請檢視:

        $images = get_children( array( 'post_parent' => 1, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) );
/* $images is now a object that contains all images (related to post id 1) and their information ordered like the gallery interface. */
        if ( $images ) {

                //looping through the images
                foreach ( $images as $attachment_id => $attachment ) {
                ?>

                            <?php /* Outputs the image like this: <img src="" alt="" title="" width="" height="" /> */  ?>
                            <?php echo wp_get_attachment_image( $attachment_id, 'full' ); ?>

                            This is the Caption:<br/>
                            <?php echo $attachment->post_excerpt; ?>

                            This is the Description:<br/>
                            <?php echo $attachment->post_content; ?>

                <?php
                }
        }

找到你要從中提取影像並將其插入到此引數中的帖子 ID:'post_parent' => 1(將 1 替換為您的頁面 ID)

你也可以使用:

'post_parent' => $post->ID

如果要在迴圈中使用 get_children,並從返回的帖子標識中獲取帖子 ID 。

如果要排除選定為特色影像的影像,我將使用 if 語句來檢查影像 URL 是否等於特徵影像 URL 。

希望這可以幫助! 🙂

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。