查询所有帖子:要么显示最近的帖子,要么显示选择了特定ACF值的帖子

时间:2017-06-20 作者:bhood

我正在使用WP Query进行自定义分类-“特色版面”,并尝试解决两个方案:使用高级自定义字段显示具有特定值集的最新特色版面,或显示最新特色版面帖子(即。$stickyToggle == yes. 前者优先。

现在,下面的代码只输出最新的帖子,但我不知道如何首先检查和输出帖子,如果它同时是一个特色版面和$stickyToggle=是,如果不是,只输出最新的特色版面。代码如下:

    <?php
    //Getting \'Featured\' Value
    $featured_value_cat_query = new WP_Query( array (
      \'post_type\' => \'seacoast_values\',
      \'posts_per_page\' => -1,
      \'tax_query\' => array(
          \'relation\' => \'AND\',
          array(
            \'taxonomy\' => \'seacoast_value_category\',
            \'field\'    => \'slug\',
            //$term_slug is main category/taxonomy term
            \'terms\'    => $term_slug,
          ),
          array(
            \'taxonomy\' => \'seacoast_value_layout_position\',
            \'field\'    => \'slug\',
            \'terms\'    => \'featured-layout\',
            \'orderby\'  => \'date\',
            \'order\'    => \'DESC\',
          ),
      ),
    ) );

    $stickyToggle = get_field(\'seacoast_value_sticky_value\');

    //Returning \'Featured\'

    if ( $featured_value_cat_query->have_posts() ) {

      while ( $featured_value_cat_query->have_posts() ): $featured_value_cat_query->the_post(); ?>

    Post Content would be here

  <?php

    endwhile;  //end of \'Featured\' loop

    //* Restore original Post Data
    wp_reset_postdata();

  } //end of if post ?>

1 个回复
最合适的回答,由SO网友:stellarcowboy 整理而成

在回路中运行一次,当发现粘性柱时,将其断开。如果未找到,请回放查询并输出第一个找到的结果:

<?php if ( $featured_value_cat_query->have_posts() ) {
   $count = 0;

   while ( $featured_value_cat_query->have_posts() ): 
      $featured_value_cat_query->the_post();

      if ( \'yes\' == get_field(\'seacoast_value_sticky_value\') )
      { 
         $count = 1; ?>

         // Post Content would be here

         <?php break;
      }

   endwhile;  //end of \'Featured\' loop

   if ($count == 0) {
      $featured_value_cat_query->rewind_posts();

      while ( $featured_value_cat_query->have_posts() ): 
         $featured_value_cat_query->the_post(); ?>

         // Post Content would be here

         <?php break;

      endwhile;  //end of \'Featured\' loop
   }
} //end of if post

//* Restore original Post Data
wp_reset_postdata(); 
?>

结束

相关推荐

Custom Loop Event Page

我需要在事件页面中创建一个循环,每页分页10篇文章。我想用的方法有点复杂。例如,当前日期为2015年5月1日:2015年1月1日至2015年3月1日至2015年6月1日至2015年9月1日我想这样列出我的所有事件:(第一:ASC排序的未来事件)-(第二:DESC排序的过去事件)因此,循环的最终结果是:2015年6月1日至2015年9月1日/-2015年3月1日至2015年1月1日$current_date = current_time( \'timestamp\', true ); $page =