• Такое задание. Нужные вывести посты имеющие метки по такой схеме
    Метка1 И Метка2 И (Метка3 или Метка4 или Метка5)

    Я читал про таксономии, там вроде можно через OR AND писать условия, а с метками не нашёл. Вопрос: можно именно с помощью меток сделать такую выборку?

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • через плюс указывайте, что-то типа:

    <?php
    
        $args=array(
          'tag' => 'email+antispambot',
          'showposts'=>5,
          'caller_get_posts'=>1
        );
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
          echo '5 recent Posts with tag1';
          while ($my_query->have_posts()) : $my_query->the_post(); ?>
            <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
           <?php
          endwhile;
        } //if ($my_query)
      wp_reset_query();  // Restore global post data stomped by the_post().
    ?>

    Как вы написали это будет по идее пост, имеющий одновременно 2 эти метки.

    А мне нужно чтоб было «Метка2 И (Метка3 или Метка4 или Метка5)»

    Как указать именно группу с ИЛИ?

    в самом цикле уже проверять наличие метки из группы ИЛИ.
    если есть — выводить, нет — дальше смотрим записи найденные по первому И.

    Приду с работы покажу полную картину станет понятнее)

    просто там для выборки по меткам есть tag_and tag__in както так, но можно применять только 1 шото, мне получается надо применить tag_and, а потом через if проверять наличие метки

    SaW_3D, разве метки и категории не являются предопределенными таксономиями?
    — рубрика — таксономия ‘category’
    — метка — таксономия ‘post_tag’

    да может и есть какой способ совместить, то так сходу гугл молчит.
    проще И задать в WP_Query, а ИЛИ впихнуть в условие if( $my_query->have_posts() )

    Вот так кароч вроде пашет, спс за советы)

    if( $q->have_posts() ):
    		while($q->have_posts()): $q->the_post();
    			if( has_tag($mytags) ){ ?>
    				<article class="post" style="opacity:0;">
    				<a>" class="post-inner">
    				<div class="post-image">
    				<?php the_post_thumbnail(); ?>
    				<div class="date"><?php echo get_post_meta(get_the_ID(), 'date',true); ?></div>
    				</div>
    				<div class="post-content">
    				<h2><?php the_title();?></h2>
    				<div class="post-text">
    					<?php the_content();?>
    				</div>
    				</div>
    				</a>
    				</article>
    			<?php }
    	endwhile;
    	endif; ?>

    SaW_3D, какой в итоге получился запрос WP_Query?
    Почему не стали использовать запрос, используя параметры таксономии, т.е. ‘tax_query’? Тогда все условия были бы в запросе без необходимости доп. обработки в циклах.

    да может и есть какой способ совместить, то так сходу гугл молчит.

    Flector, а как бы Вы решали такие задачи ? Запрос и циклы ,условия для отбора?
    1. Показать посты с рубрикой ‘quotes’ ИЛИ посты с таксономией ‘post_format’ со значением ‘post-format-quote’.
    2. Показать посты с рубрикой ‘quotes’ ИЛИ (посты с таксономией ‘post_format’ со значением ‘post-format-quote’ И принадлежащие рубрике ‘wisdom’).

    Задачи выполняются одним запросом (WP_Query) и являются примерами для WP_Query из кодекса WP. )

    Пока что хоть как-то пусть пашет для начала) щас буду пробовать с tax_query.

    Flector, а как бы Вы решали такие задачи ?

    да не приходилось еще такие условия писать.
    поэтому остановился бы на первом рабочем варианте — как тут с has_tag.

    а так-то да, tax_query выглядит подходящим вариантом.

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