WordPress цикл для определенной категории
12 февр. 2013 г., 21:12:52
Просмотры: 29.4K
Голосов: 4
У меня есть этот сниппет для определенной категории, он работает отлично, но я хочу немного модифицировать его, чтобы показывать посты в порядке возрастания.
<?php
// Запрос
query_posts( array (
'category_name' => 'A',
'posts_per_page' => -1,
'orderby' => 'title', // Сортировка по заголовку
'order' => 'ASC' // Порядок по возрастанию
) );
// Цикл
while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile;
// Сброс запроса
wp_reset_query();
?>

user23407
43
Все ответы на вопрос
3
0
Почти уверен, что query_posts — это худший способ делать запросы...
Мне постоянно твердят, что всегда нужно использовать get_posts. Уберите аргументы, которые вы не используете, из массива ниже.
$args = array(
'posts_per_page' => 5000,
'offset' => 0,
'category' => ,
'orderby' => 'post_date',
'order' => 'ASC',
'include' => ,
'exclude' => ,
'meta_key' => ,
'meta_value' => ,
'post_type' => 'post',
'post_mime_type' => ,
'post_parent' => ,
'post_status' => 'publish',
'suppress_filters' => true );
$posts = get_posts($args);
foreach ($posts as $post) :
?><div class="">
<a href="<?php the_permalink();?>">
<?php
echo the_title();
echo the_post_thumbnail(array(360,360));
the_excerpt('more text');
?></a></div>
<?php endforeach; ?>
<?php
Метод WP_query с ID категорий:
$query = new WP_Query( array( 'category__in' => array( 2, 6 ), 'order' => 'ASC') );
Или измените запрос вот так, но я не знаю, как добавить сортировку по возрастанию:
add_action( 'pre_get_posts', 'add_my_custom_post_type' );
function add_my_custom_post_type( $query ) {
if ( $query->is_main_query() )
$query->set( 'category', 'A' );
// $query->set( 'order', 'ASC' ); возможно?
return $query;
}

Ben Racicot
1.44K
12 февр. 2013 г. 22:11:54
0
Просто добавьте аргумент в массив...
query_posts( array ( 'category_name' => 'A', 'posts_per_page' => -1, 'order' => 'ASC' ) );
...но не используйте query_posts, смотрите здесь почему. Вместо этого вы можете сделать так:
$args = array(
'category_name' => 'A',
'posts_per_page' => -1,
'order' => 'ASC',
);
$your_query = new WP_Query($args);
while ($your_query->have_posts()) : $your_query->the_post();

Natko
216
12 февр. 2013 г. 21:26:05
Похожие вопросы
2
ответов