我使用自定义帖子类型,并通过循环在整个网站中提取该信息。每次我想从自定义帖子类型调用信息时,似乎没有必要创建一个循环。还有另一种方式吗?
以下是循环的示例,以及我如何调用它。
<?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;
?>
感谢任何帮助!
答案 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()
。