使用Foreach获取循环外的特色图像

时间:2016-07-30 作者:Gregory Schultz

我不熟悉圈外工作,所以如果已经有人问过这个问题,请原谅我。

如何获得循环之外的帖子的特征图像?我做了一个print_r 我没有看到任何与特色图片相关的内容。

下一步该怎么办?

Update: 我能够让它工作,但我需要一种方法来显示与帖子的特色图片相关的每个图片大小。

这就是我目前所做的:

// the query. Only show posts with a certain taxonomy
<?php $args = array(\'tax_query\' => array(array(\'taxonomy\' => \'post-status\',\'field\' => \'slug\',\'terms\' => array (\'post-status-published\')))); $query = new WP_Query( $args );?>
<?php if ( $query->have_posts() ) : $major = false; $major_first = false; $duplicates = []; while ( $query->have_posts() ) : $query->the_post(); ?>

//check if any post belongs to a certain category
<?php if ( in_category( \'major\' ) ) : ?>
    <?php $major = true;?>
    <?php $major_data [] = get_post($post->ID) ;?>
<?php endif; ?>
<?php if ( in_category( \'major-first\' ) ) : ?>
    <?php $major_first = true;?>
    <?php $major_first_data [] = get_post($post->ID) ;?>
    <?php $image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ),\'large\' ); $image = $image_array; ?>

<?php endif; ?>

// end of the loop
<?php endwhile; endif; ?>

// show content
<?php if ($major == true):?>
    <?php if ($major == true):?>
        <?php foreach($major_first_data as $postID) { ;?>
            <?php $postData = get_post( $postID );?>
            <?php print $postData->post_title;?><br>
            <?php echo $image[0]; ?>
        <?php } ?>
    <?php endif;?>
    <?php foreach($major_data as $postID) { ;?>
        <?php $postData = get_post( $postID );?>
        <?php print $postData->post_title;?><br>
    <?php } ?>
<?php endif;?>

2 个回复
最合适的回答,由SO网友:Gregory Schultz 整理而成

我可以通过以下操作使其正常工作:

<?php foreach($major_first_data as $postID) { ;?>
<?php $postData = get_post( $postID );?>
<?php print $postData->post_title;?><br>
<?php print wp_get_attachment_image_src( get_post_thumbnail_id( $postID ), \'thumbnail\' )[0];?>
<?php } ?>
专注于线路:

<?php print wp_get_attachment_image_src( get_post_thumbnail_id( $postID ), \'thumbnail\' )[0];?>

它输出以下内容:

Array ( [0] => url to thumbnail [1] => image width [2] => image height [3] => 1 )

如果你想用另一种尺寸,只需替换thumbnail 任何你想要的东西。

谢谢你的帮助。

SO网友:stoi2m1

首先,您需要获得站点上所有可用尺寸的列表。此函数get_intermediate_image_sizes() 会这样做的。然后可以将结果传递给image_get_intermediate_size() 以及post id和

<?php $sizes = get_intermediate_image_sizes(); ?>
<?php foreach($major_data as $postID) { ;?>
    <?php $postData = get_post( $postID );?>
    <?php print $postData->post_title;?><br>
    <?php var_dump(image_get_intermediate_size( $postID, $sizes )); ?> 
<?php } ?>
有关此功能的详细信息get_intermediate_image_sizes()

media.php wordpress核心文件