• Всем привет!

    Один и тот же код на одном сайте работает нормально, а на другом работает не корректно.

    Проблема заключается в том, что запрос из бд достает только записи со значением таксомонии = test-1, а ‘test-2’, ‘test-3’ игнорирует. Т.е. берется только первая таксомония в массиве. Разница между сайтами, только в количестве записей, там где все нормально работает, всего 3 записи, а том где есть изложенная проблема их больше 300 штук. Прошу помочь разобраться, может я что-то не доглядел.

    $args = array('post_type' => 'post', 'posts_per_page' => '-1',
    'tax_query' => array(
    		'relation' => 'OR',
    		array(
    			'taxonomy' => 'tax-1',
    			'field' => 'slug',
    			'terms' => array( 'test-1', 'test-2', 'test-3' ),
    		)
    	)
    ); 
    
    $query = new WP_Query;
    $my_posts = $query->query($args);
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • А зачем вам с одной taxonomy условие OR?
    И, кажется, раньше была какая-то мутная история с $query, попробуйте другое имя для переменной, типа $my_query

    Да и аргументы можно сразу передавать в конструктор: WP_Query($args)

    А зачем вам с одной taxonomy условие OR?

    Ну так мне нужны записи к которым присвоены значения ‘test-1’ или ‘test-2’ или ‘test-3’.

    Мне кажется проблема в этом массиве,

    'terms' => array( 'test-1', 'test-2', 'test-3' )

    почему может берет только первое значение таксомонии?

    Добавление оператора ‘operator’ => ‘IN’, не помогло (((((
    NOT_IN и AND работает коррентко.

    Все я понял в чём дело.
    WP_Query выводит только 16 записей (если запрос без ‘tax_query’, то выводятся сразу все посты).

    У меня в настройках темы установлено 16 записей на 1 странице и видимо настройки тему как-то влияют на запрос.

    Как еще можно прописать количество выводимых записей?

    Помогло отключение nopaging

    $args = array( 'post_type' => 'post',
    	'tax_query' => array(
    		array(
    			'taxonomy' => 'tax-1',
    			'field' => 'slug',
    			'terms' => array( 'test-1', 'test-2', 'test-3' ),
    			'operator' => 'IN',
    		)
    	), 'nopaging' => 1,
    );

    Про nopaging, конечно, интересно. Странно, что posts_per_page не сработал..
    Кстати, operator по умолчанию IN, можно опустить.

    Кстати, operator по умолчанию IN, можно опустить.

    Ок, буду знать.

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