获取多种帖子类型和分类法帖子

时间:2018-10-11 02:01:22

标签: php wordpress custom-taxonomy

我想在我的主页上显示最新的新闻/警报,我需要一些帮助。

我目前仅使用以下代码显示带有post帖子类型的新闻。这很正常。当我想使用多个邮政类型时,会出现问题。一旦我修改为'post_type' => array('post','blog'),就什么也没有出现。它不显示的原因是$term = get_the_category();。一旦我用<a></a>删除了整个彩色部分。效果很好。

因此,我相信我必须指定分类法。因为在Post中我的税项是category,在Blog中我的税项是blog-category。我无法同时获得这两个。

那我该怎么称呼$term = get_the_category();中的两个分类法

从现在开始谢谢您

<div class="news-area">
<div class="items clear">

<?php
$query = new WP_Query(array(
      'post_type' => 'post',
      'posts_per_page' => 4,
));
while ($query->have_posts()) : $query->the_post();
  $info = get_post_meta(get_the_ID(), '_post_info', true); if (!$info) $info = array();
  $post_elem=get_post();
  ?>
<div class="item <?php if (has_post_thumbnail()) echo 'has-image' ?>">
  <div class="inner">
      <div class="content">
          <?php if (has_post_thumbnail()): ?>
              <?php the_post_thumbnail('full') ?>
          <?php endif; ?>

          <?php
          $term = get_the_category();
          $term = $term[0];
          $color = get_term_meta($term->term_id, 'color', true);
          ?>
          <a href="<?php echo get_term_link($term) ?>" class="category" style="background-color: <?php echo $color ?>">
              <?php echo $term->name ?>
          </a>

          <h2 class="title">
              <a href="<?php the_permalink() ?>" class="underline"><?php the_title() ?></a>
          </h2>

          <div class="description">
              <?php //$except_meta=get_post_meta(get_the_ID(),"_excerpt") ?>
              <?php //echo "Aaaaaaa".$query->the_post()->post_excerpt ?>
              <?php if($post_elem->post_excerpt!=""): ?>
                  <?php  the_custom_excerpt($post_elem->post_excerpt, $length =80); ?>
              <?php else: ?>
              <?php the_excerpt(); ?>
              <?php endif; ?>
          </div>

          <div class="date"><?php echo get_the_date(et_get_option('_date_format')) ?></div>
      </div>
  </div>
</div>
<?php endwhile; wp_reset_postdata(); ?>

</div>
</div>

2 个答案:

答案 0 :(得分:0)

无法添加评论,因此我将其发布为答案。试试:

<?php
      $term = get_the_category();
      if ( ! empty( $term ) ) {
          $term = $term[0];
          $color = get_term_meta($term->term_id, 'color', true);
          ?>
          <a href="<?php echo get_term_link($term) ?>" class="category" style="background-color: <?php echo $color ?>">
          <?php echo $term->name ?>
          </a>
          <?php
       }
       ?>
       <h2 class="title">
              <a href="<?php the_permalink() ?>" class="underline"><?php the_title() ?></a>
       </h2>

这将至少防止未设置$ color时显示/执行。

答案 1 :(得分:0)

谢谢大家,我只是通过更改

解决了这个问题
$term = get_the_category(); 

$term = get_the_terms($ID,array('blog-category','category'));