Поддержка Проблемы и решения Альтернатива have_posts

  • Доброго времени суток!
    Я создал новый тип записей и таксономию к ней.
    Подскажите как мне указать количество выводимых записей рубрики нового типа записей…
    Так выводит но с тем количеством, которой прописано в анминке

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php get_template_part('loop-ceilings'); ?>
    <?php endwhile;	else: echo '<h2>Нет записей.</h2>'; endif; ?>

    А так уже выводит сами записи (Привет мир) что мне не нужно

    <?php if (have_posts()) : 
    query_posts('posts_per_page=-1');
    while (have_posts()) : the_post(); ?>
    <?php get_template_part('loop-ceilings'); ?>
    <?php endwhile;	else: echo '<h2>Нет записей.</h2>'; endif; ?>

    Подскажите пожалуйста как правильно написать код…

    Тип записей «ceiling» — записи
    Таксономия «ceiling_tax» — рубрики

    • Тема изменена 5 лет, 7 месяцев назад пользователем Kachan.
Просмотр 5 ответов — с 1 по 5 (всего 5)
  • query_posts

    Не используйте query_posts.
    Используйте WP_Query или get_posts
    См по русски http://wp-kama.ru/function/wp_query http://wp-kama.ru/function/get_posts с примерами и объяснениями.

    Подскажите пожалуйста как получить id текущей категории ?

    Вот так работает только конкретная категория`$args = array(
    ‘post_type’ => ‘ceilings’,
    ‘ceilings_tax’ => ‘glyancevye’,
    ‘posts_per_page’ => -1
    );
    $query = new WP_Query( $args );`А как получить вместо glyancevye слуг, который бы подставлялся когда я находился бы в этой категории ?
    Не могу найти и понять

    • Ответ изменён 5 лет, 7 месяцев назад пользователем Kachan.
    • Ответ изменён 5 лет, 7 месяцев назад пользователем Kachan.

    Есть код

    $args = array(
    	'post_type' => 'ceilings',
    	'ceilings_tax'    => 'glyancevye',
    	'posts_per_page' => -1
    );
    if (have_posts()) :
    $query = new WP_Query( $args );
    while (have_posts()) : the_post();
    get_template_part('loop-ceilings');
    endwhile; else: echo '<h2>Нет записей.</h2>'; endif;

    Я вручную назначил
    'ceilings_tax' => 'glyancevye'
    Также у меня есть еще 2 категории в таксономии ceilings_tax
    URL выглядит следующим образом
    /mysite/ceilings_tax/glyancevye/

    Как вытащить ID категории или ее slug находясь в определенной категории в таксономии ceilings_tax

    Модератор Юрий

    (@yube)

    if (have_posts()) :
    $query = new WP_Query( $args );
    

    Это телега впереди лошади. Сначала делается выборка, а уже потом проверяется, не пустая ли она.

    И вообще, делать второй раз выборку — плохая идея. Лучше повесить на крючок pre_get_posts функцию, изменяющую кол-во записей на страницу. В Кодексе есть готовый пример «Changing the number of posts per page, by post type».

    Спасибо! Все получилось…

    Сделал следующим образом:
    В functions добавил

    function hwl_home_pagesize( $query ) {
        if ( is_tax( 'ceilings_tax' ) ) {
            $query->set( 'posts_per_page', '-1' );
            return;
        }	
    }
    add_action( 'pre_get_posts', 'hwl_home_pagesize', 1 );

    Закрывайте тему

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Альтернатива have_posts» закрыта для новых ответов.