如何使用WP_QUERY获取带有关键字的自定义帖子类型

时间:2016-02-27 作者:Robin

我想用关键字查询并在自定义分类页面上显示一些相关帖子,相关帖子来自自定义帖子类型“gift”。我尝试了下面的代码,但它只适用于默认的post\\u类型,如何使其适用于自定义post\\u类型?非常感谢!

    <?php
    $querytitle = $reltopic; //$reltopic is query keywords
    $querytitle=strtoupper($querytitle);
    $ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE UCASE(post_title) LIKE \'%$querytitle%\' AND post_type=\'gift\' AND post_status=\'publish\'");
    if ($ids) {
      $args=array(
        \'post__in\' => $ids,
        \'posts_per_page\' => -1, 
        \'caller_get_posts\'=> 1
      );
      $my_query = null;
      $my_query = new WP_Query($args);
      if( $my_query->have_posts() ) {
        //echo \'List of Posts\';
        while ($my_query->have_posts()) : $my_query->the_post(); ?>
          <a href="<?php the_permalink() ?>" target="_blank"><?php the_title(); ?></a>
          <?php
        endwhile;
      }
    wp_reset_query();  // Restore global post data stomped by the_post().
    }
    ?>

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

您实际上需要将post类型传递给WP_Query 还有参数。

默认情况下,post_type 设置为post

注意事项:

  • caller_get_posts 如果长期折旧,您应该使用ignore_sticky_posts

    在将帖子传递给之前,您应该确保您拥有帖子IDpost__in. 将空数组传递给post__in 将返回所有帖子