Проблема с отображением одного сообщения из каждой категории
Я бился головой почти целый день, но не мог решить эту проблему. мне нужно показать один пост из 4 категорий xx вот мой код
<?php
$cat_args = array(
'orderby' => 'name',
'order' => 'ASC',
'include' => '44,45,46,51'
);
$fcategories = get_categories($cat_args);
foreach($fcategories as $fcategory) {
echo '<dl>';
echo '<dt> <a href="' . get_category_link( $fcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $fcategory->name ) . '" ' . '>' . $fcategory->name.'</a></dt>';
$post_args = array(
'showposts' => 1,
'category' => $fcategory->cat_ID
);
$fposts = get_posts($post_args);
foreach($fposts as $fpost) : setup_postdata($fpost); ?>
<dd><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
<?php
echo '<dd class="view-all"> <a href="' . get_category_link( $fcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $fcategory->name ) . '" ' . '>View all posts in ' . $fcategory->name.'</a></dd>';
echo '</dl>';
endforeach;
}
?>
Кажется, что все мысли работают идеально, за исключением.... он показывает только один пост для всей категории, в то время как он должен был показывать по одному посту из каждой категории , чтобы быть более конкретным, его отображение похоже на
Кошка-1 кошка-2 кошка-3 кошка-4 (это нормально)
сообщение-1 сообщение-1 сообщение-1 сообщение-1 (это проблема)
В то время как это должно были
Кошка-1 кошка-2 кошка-3 кошка-4
пост-1 пост-2 пост-3 пост-4
Пожалуйста, помогите
1 answers
Я проверил этот код локально, вот рабочий фрагмент:
<?php
$cat_args = array(
'orderby' => 'name',
'order' => 'ASC',
);
$fcategories = get_categories($cat_args);
foreach($fcategories as $fcategory) {
echo '<dl>';
echo '<dt> <a href="' . get_category_link( $fcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $fcategory->name ) . '" ' . '>' . $fcategory->name.'</a></dt>';
$post_args = array(
'posts_per_page' => 1,
'cat' => $fcategory->cat_ID
);
$fposts = query_posts($post_args);
while(have_posts()) : the_post(); ?>
<dd><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
<?php
echo '<dd class="view-all"> <a href="' . get_category_link( $fcategory->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $fcategory->name ) . '" ' . '>View all posts in ' . $fcategory->name.'</a></dd>';
echo '</dl>';
endwhile;
}
wp_query_reset();
?>
Оригинальный ответ:
Я думаю, что проблема может быть здесь:
$post_args = array(
'showposts' => 1,
'category' => $fcategory->cat_ID
);
Вы используете аргумент category
, он должен быть cat
, поэтому попробуйте этот код:
$post_args = array(
'showposts' => 1,
'cat' => $fcategory->cat_ID
);