是否在管理面板中按类别名称对所有帖子进行排序?

时间:2014-01-28 作者:zipzit

我在一个相当复杂的网站上工作,所有内容都是按类别类型管理的,包括自动旋转图像提交等。。不幸的是,当管理面板“所有帖子”按日期(DESC)排序时,很难管理事情。我想,将“所有帖子”按类别名称排序肯定会很方便。

我发现了这个小程序,它可以按帖子名称进行排序。

 /*
 Plugin Name: Set Post Order In Admin
 Version: 0.1
 Plugin URI: http://wordpress.org/support/topic/336715/
 Description: In Posts->Edit, display posts in title order.
 Author: MichaelH
 Author URI: http://codex.wordpress.org/User:MichaelH/MyPlugins
 check out: http://codex.wordpress.org/Class_Reference/WP_Query
 in the section order and orderby parameters  */
 function set_post_order_in_admin( $wp_query ) {
    if ( is_admin() ) {  
         $wp_query->set( \'orderby\', \'name\' );
         $wp_query->set( \'order\', \'ASC\' );  /* ASC or DESC */
    }
 }
 add_filter(\'pre_get_posts\', \'set_post_order_in_admin\' );
这对于按标题排序是可行的,但我确实需要能够按类别名称排序。我试着玩$wp_query->set( \'meta_key\', \'category\' );$wp_query->set( \'orderby\', \'meta_value\' ); 但当我开始使用这些工具时,我的管理面板中所有帖子的回复都是空的。有什么想法吗?我试过很多术语meta_key 他们都失败了。以前有人来过这里吗?如何实现按类别(父)对管理面板中的所有帖子进行排序的目标??

3 个回复
SO网友:1fixdotio

zip,您可能需要先将类别保存为新的post meta,这就是orderby meta\\u值的工作方式。

不确定这是否有帮助,我偶然发现了这个插件:http://wordpress.org/plugins/custom-post-order-category/, 它可以让您指定一个类别,然后在该类别中排序帖子。

如果您对如何将类别保存到post meta感到好奇,我已经使用了meta Box插件:http://wordpress.org/plugins/meta-box/. 如果你需要进一步的帮助,请告诉我。

SO网友:Pim Schaaf

抛开分类法对秩序的反对意见@Otto 在里面https://wordpress.stackexchange.com/a/14309/25886, 我想他的回答是有道理的。

他提到http://scribu.net/wordpress/sortable-taxonomy-columns.html 特别是在可排序的分类列上发布文章。

以下代码为@mikeschinkel:

function color_clauses_mike( $clauses, $wp_query ) {
    global $wpdb;

    if ( isset( $wp_query->query[\'orderby\'] ) && \'color\' == $wp_query->query[\'orderby\'] ) {

        $clauses[\'join\'] .= <<<SQL
LEFT OUTER JOIN {$wpdb->term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id
LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id)
LEFT OUTER JOIN {$wpdb->terms} USING (term_id)
SQL;

        $clauses[\'where\'] .= " AND (taxonomy = \'color\' OR taxonomy IS NULL)";
        $clauses[\'groupby\'] = "object_id";
        $clauses[\'orderby\']  = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) ";
        $clauses[\'orderby\'] .= ( \'ASC\' == strtoupper( $wp_query->get(\'order\') ) ) ? \'ASC\' : \'DESC\';
    }

    return $clauses;
}
add_filter( \'posts_clauses\', \'color_clauses_mike\', 10, 2 );

SO网友:T.Todua

根据https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters 似乎没有内在的方法来实现这一点。然而,您可以使用定制编码,就像@pimSchaaf建议的那样。

结束

相关推荐

从2种不同的帖子类型中查询连接的帖子(使用posts2post)

假设我有3种帖子类型:帖子、议程和慈善。我使用插件Posts2posts 从scribu将某些帖子和某些议程项目连接到一些慈善项目。在慈善机构的单页上,我想在侧栏中显示帖子和议程。我有两个问题:1st problem: 我要混合,但仍按日期分类2nd problem: 我只想显示与我的慈善帖子相关的帖子和议程项目。看起来像是-连接到此慈善机构的最后一个帖子-与该慈善机构相关的最后一个议程项目-Forlast post item连接到此慈善机构-与该慈善机构相关的最后一个议程项目当使用wp\\u query