如何在没有循环的情况下在Wordpress中提取信息?

时间:2015-07-27 14:30:20

标签: php wordpress loops

我使用自定义帖子类型,并通过循环在整个网站中提取该信息。每次我想从自定义帖子类型调用信息时,似乎没有必要创建一个循环。还有另一种方式吗?

以下是循环的示例,以及我如何调用它。

<?php

    $args = 'post_type=post-custom&order=ASC';
    query_posts($args);
    if ( have_posts($args) ) : while ( have_posts() ) : the_post();
    $my_meta = get_post_meta($post->ID,'_my_meta',TRUE);
?>

<img src="<?php echo $my_meta['img'];?>">

<?php   
    endwhile; 
    endif;
?>

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您需要使用某些类型的循环...如果您不想使用The Loop,则可以使用标准foreach循环和{ {3}}。因为您只对获取post meta感兴趣,所以您可以使用fields参数返回一个帖子ID数组,而不是完整的帖子对象:

$args = array(
    'post_type' => 'post-custom',
    'order' => 'ASC',
    'posts_per_page' => -1,
    'fields' => 'ids'
);
$post_ids = get_posts( $args );

foreach ( $post_ids as $id ) {
    $meta = get_post_meta( $id, '_my_meta', true );
    echo '<img src="' . $meta['img'] . '">';
}

作为最后一点,您基本上应该get_posts()