仅显示WordPress中某些类别的标签

时间:2015-05-16 11:31:26

标签: php wordpress loops tags custom-post-type

我目前有一个名为Sectors的自定义帖子类型。这也有类别。 Sectors

    add_action( 'init', 'wpsites_custom_post_type' );
function wpsites_custom_post_type() {

register_post_type( 'sectors',
    array(
        'labels' => array(
            'name'          => __( 'Sectors' ),
            'singular_name' => __( 'sector' ),
        ),
        'has_archive'  => true,
        'hierarchical' => true,
        'menu_icon'    => 'dashicons-heart',
        'public'       => true,
        'rewrite'      => array( 'slug' => 'sectors', 'with_front' => false ),
        'supports'     => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ),
        'taxonomies'   => array( 'sectors', 'post_tag' ),
    ));

}

在这里,我有各自的部门,可以贴上标签 Tags

我目前正在尝试做的是向某个部门添加标签,标记的部门将是一个特色部门'在其类别页面中。

使用下面的代码,在我的taxonomy-sectors.php页面上,我可以这样做:

    <?php 
    $args = array(
      'tag_slug__and' => array('sector1'),
      'post_type' => array( 'sectors' )
      );
    $loop = new WP_Query( $args );
    while ($loop->have_posts() ) : $loop->the_post();
    ?>
    <a href="<?php echo get_permalink(); ?>">
     <?php echo "<div class='col-md-6' style='margin-bottom:20px;'>"; ?>
     <div class="row mobilemargin">
      <div class="categorytiletextsector1">
        <div class="col-md-6 col-sm-6 col-xs-12 nopr"><?php echo get_the_post_thumbnail( $page->ID, 'categoryimage', array('class' => 'sector1img hovereffect')); ?> </div>
        <div class="col-md-6 col-sm-6 col-xs-12">
          <div class="testdiv">
           <h5><?php the_title(); ?></h5>
           <p><?php the_excerpt(); ?></p>
         </div>
       </div>
     </div>
   </div>
   <?php echo "</div>"; ?>

 </a>
       

问题是,这会在每个类别页面上显示这些标记的扇区,因为所有类别都使用分类页面。有没有办法,它只会将这些标记的扇区页面显示为自己的类别?如果有帮助的话,任何行业都不能属于1类。

任何帮助都会很棒,这已经困扰了我好几天了:(

修改

以下代码来自答案,但现在没有返回任何内容,是否有遗漏?

$args = array(
    'tag_slug__and' => array( 'sector1' ),
    'post_type'     => array( 'sectors' ),
    'tax_query'     => array(
        array(
            'taxonomy' => 'sectors',
            'terms'    => get_queried_object_id(),
        ),
    ),
);

2 个答案:

答案 0 :(得分:0)

您目前所拥有的查询将会检索所有帖子,而不是特定于您正在查看的字词。

如果我已正确理解您的问题,您希望过滤所显示的帖子您正在查看的字词。这可以通过使用get_queried_object_id()获取当前术语ID并将其传递给tax_query参数来完成。

变化:

$args = array(
    'tag_slug__and' => array('sector1'),
    'post_type' => array( 'sectors' )
);

要:

$args = array(
    'tag_slug__and' => array( 'sector1' ),
    'post_type'     => array( 'sectors' ),
    'tax_query'     => array(
        array(
            'taxonomy' => 'sectors',
            'terms'    => get_queried_object_id(),
        ),
    ),
);

答案 1 :(得分:-1)

尝试这个

<div class="col-md-6 col-sm-6 col-xs-12"> 
   <div class="testdiv"> 
          <h5><?php the_title(); ?></h5> 
          <p><?php the_excerpt(); ?></p> 
          <p><?php the_tags( 'Tags: ', ', ', '<br />' ); ?></p> 
   </div> 
</div>