WordPress 分类法,仅列出单个分类法

WordPress Taxonomy, listing ONLY the single taxonomies

所以我有一个自定义分类法 'Sectors'。

我试图在列表中显示 'Sectors' 中的所有单个帖子,只是一个基本列表。

我目前确实有它,它将显示类别,然后是子类别,然后是那里的列表。

我也有这个,它列出了所有帖子-(不是分类法):

<?php 
      $uncat = get_cat_ID('uncategorised');
      $args = array(
        'posts_per_page' => 5,
        'category__not_in' => array($uncat)
        );
      $loop = new WP_Query( $args );
      while ($loop->have_posts() ) : $loop->the_post();
      ?>
      <div class="col-md-12 col-sm-12 col-xs-12" style="padding-left:0; padding-right:0;">
        <a href="<?php echo get_permalink(); ?>">
        <div class="postsize">
          <div class="leftfloat" style="float: left; padding-right:20px;">
            <?php echo get_the_post_thumbnail( $page->ID, 'categoryimage', array('class' => 'faqposts')); ?>

          </div>
          <div class="contentfaq">
          <h3><?php the_title(); ?></h3>
          <span class="entry-date-orange"><strong><?php echo get_the_date(); ?></strong></span>
          <?php
          foreach((get_the_category()) as $category) { 
            echo ' | ' . $category->cat_name; 
          } 
          ?>

          <p style="margin-top:10px";><?php the_excerpt(); ?></p>
        </div>
        </div>
      </a>
      </div>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?> 

有没有办法使用下面的代码,只从分类法 'sectors' 中获取项目?

为此,您需要获取属于您的分类的所有术语,然后使用 tax_query 查询正确的帖子。为了提高效率,我们只会得到术语 id 而不是完整的对象

(注意:代码未经测试,需要PHP 5.4+。另外,只需确认分类法名称)

$term_ids = get_terms( 'SectorCategories', ['fields' => 'ids'] );
if ( get_query_var( 'paged' ) ) {
    $paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
    $paged = get_query_var( 'page' );
} else { 
    $paged = 1;
}
$args = [
    'post_type' => 'sectors',
    'posts_per_page' => 5,
    'paged' => $paged,
    'tax_query' => [
        [
            'taxonomy' => 'SectorCategories',
            'terms' => $term_ids,
        ]
    ],
    // REST OF YOUR ARGUMENTS
];
$loop = new WP_Query( $args );

编辑

对于较旧的 PHP 版本,请使用以下代码

$term_ids = get_terms( 'SectorCategories', array( 'fields' => 'ids' ) );
if ( get_query_var( 'paged' ) ) {
    $paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
    $paged = get_query_var( 'page' );
} else { 
    $paged = 1;
}
$args = array(
    'post_type' => 'sectors',
    'posts_per_page' => 5,
    'paged' => $paged,
    'tax_query' => array(
        array(
            'taxonomy' => 'SectorCategories',
            'terms' => $term_ids,
        )
    ),
    // REST OF YOUR ARGUMENTS
);
$loop = new WP_Query( $args );

编辑 2

上述查询的一个非常基本的循环看起来像这样

if ( $loop->have_posts() ) {
    while ( $loop->have_posts() ) {
    $loop->the_post();

        the_title();

    }
    next_posts_link( 'Next posts', $loop->max_num_pages );
    previous_posts_link( 'Previous posts' );
    wp_reset_postdata();
}