繁体   English   中英

WordPress的-通过自定义分类订购自定义帖子类型

[英]Wordpress - Order Custom Post Type By Custom Taxonomy

我有以下代码:

$args = array( 'post_status'=>"publish", 
'posts_per_page' => 20,
'post_type'=>"equipment",
'orderby'=>"title",
'order'=>"ASC");

$postslist = get_posts( $args );

foreach ($postslist as $post) : setup_postdata($post); ?>

一切都很好,但是我想做的是能够在自定义分类法中按类别指定帖子的顺序。

这可能吗?

一直在尝试使用类别数组,但是没有运气。

为了提供所有信息,我的自定义分类法称为“设备猫”,在这里我有几个类别,例如“视觉”,“舞台”,“照明”,“声音” ...

按照目前的情况,帖子的顺序将按字母升序显示,因此顺序为:

  • 灯光
  • 声音
  • 阶段
  • 视觉效果

我想做的就是能够对此顺序进行严格控制,因此例如:

  • 阶段
  • 视觉效果
  • 灯光
  • 声音

非常感谢所有帮助。

基本上,下面的代码设置了过滤器,以添加“ join”子句以在查询中包括条件表,将其限制为类别,然后按类别ID进行排序。 然后使用现有的查询变量(例如页码等)重新查询。

<?php   add_filter('posts_join', create_function('$a', 'global $wpdb; return $a . " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";'));
        add_filter('posts_where', create_function('$a', 'global $wpdb; return $a . " AND $wpdb->term_taxonomy.taxonomy = \'category\'";'));
        add_filter('posts_orderby', create_function('$a','global $wpdb; return "$wpdb->term_taxonomy.term_id DESC";'));
    query_posts('');
?>
<?php while ( have_posts() ) : the_post() ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM