虽然wordpress堆栈可以解决这个问题,但我认为我的问题更多的是基本的PHP逻辑而不是wordpress问题。
我的问题是我的代码在某个类别中显示每个帖子,而不仅仅是最新帖子。我的代码必须在此类别的展示帖子中说出类似foreach帖子的内容,但我想说的是,仅显示最新帖子。
$post_type = 'post';
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
$terms = get_terms( $taxonomy );
foreach( $terms as $term ) :
$args = array('taxonomy' => $taxonomy, 'term' => $term->slug, 'posts_per_page' => 1, 'orderby' => 'modified','category' => $str );
$posts = new WP_Query( $args );
if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
if(has_term('double portrait','twin')) {
get_post( &$post, $output = OBJECT, $filter = 'raw' )
}
endwhile; endif;
endforeach;
endforeach;
wp_reset_postdata();
这是我目前的代码。帮助赞赏。
答案 0 :(得分:0)
一种简单的方法,没有太多变化,你可以在第一次迭代后打破,即:
if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
if(has_term('double portrait','twin')) {
get_post( &$post, $output = OBJECT, $filter = 'raw' );
break;
}
endwhile; endif;
您也可以考虑使用此功能:<?php wp_get_recent_posts( $args, $output ) ?>
此处有更多信息:http://codex.wordpress.org/Function_Reference/wp_get_recent_posts
答案 1 :(得分:0)
$args = array(
'numberposts' => 10,
'offset' => 0,
'category' => 0,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true );
$recent_posts = wp_get_recent_posts( $args, $output = ARRAY_A );
这将为您提供10篇近期帖子。您可以使用$ args数组来寻找适合您的不同结果。
答案 2 :(得分:0)
$args = array(
'posts_per_page' => 1,
'orderby' => 'modified',
'category_name' => $str,
'post_status' => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'twin',
'field' => 'slug',
'terms' => array('double portrait','landscape')
)
)
);
$myPosts = get_posts($args);
foreach ( $myPosts as $post ) :
setup_postdata( $post );
echo get_template_part( 'twin-feature' ); ?>
<?php endforeach; wp_reset_postdata(); ?>