【问题标题】:Wordpress Custom Post Type QueryWordpress 自定义帖子类型查询
【发布时间】:2014-04-25 11:01:03
【问题描述】:

我有 4 种自定义帖子类型,例如 pt1、pt2、pt3 和 pt4。

它们都使用相同的分类法对它们进行分类。在分类档案页面上,我希望帖子按帖子类型分组,因此 pt1 中的任何帖子首先出现,然后是 pt2、pt3 等 - 目前它们使用默认排序(我假设是发布日期)所以都混在一起了。

我尝试为每种帖子类型运行单独的查询,但这弄乱了分页。提前致谢!

【问题讨论】:

  • 您可以通过自定义查询来做到这一点。查看我的回答了解更多详情

标签: php wordpress custom-post-type taxonomy


【解决方案1】:

您可以在存档页面中使用以下内容;

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$limit = 10;
$offset = ( $paged -1 ) * 10; 
$query = "
    SELECT $wpdb->posts.* 
    FROM $wpdb->posts, $wpdb->postmeta
    WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
    ORDER BY $wpdb->posts.post_type DESC
    LIMIT $offset, $limit
 ";

 $custom_posts = $wpdb->get_results($query, OBJECT);



if ( $custom_posts ) : 
    global $post;
    foreach ($custom_posts as $post) {
        setup_postdata($post);
        the_post(); 
        get_template_part( '/partials/content-archive', get_post_format() );
    }
    the_bootstrap_content_nav(); 
endif;

【讨论】:

  • 谢谢,我会尝试的,所以我会用它作为一个新的查询来覆盖默认的 archive.php 吗?
  • 当前的 archive.php 文件(我使用的是 Bootstrap 主题)拉入了这样的帖子,我不确定我会粘贴到哪里?谢谢 if ( have_posts() ) : while ( have_posts() ) { the_post(); get_template_part('/partials/content-archive', get_post_format()); } the_bootstrap_content_nav(); endif;
  • 谢谢我已经试过了(在本地主机上所以不能显示给你)但是帖子仍然没有按帖子类型列出,它在最后创建了空条目。
  • var_dump($custom_posts); 的结果是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
相关资源
最近更新 更多