我研究这个问题已经有几天了,但都没有成功。。。我想要的很简单:在管理页面上查看按ID排序的自定义分类术语。我不敢相信,没有插件,这么简单的事情就无法完成。
(我已经有了一个可排序的自定义列,但设置默认顺序也很重要。)
到目前为止,我已经找到了以下两种解决方案,但由于某些原因,这两种解决方案不起作用:
1) Registering the taxonomy with "sort => true":
register_taxonomy( \'issue\', \'post\', array( \'hierarchical\' => false, \'labels\' => $labels, \'public\' => true, \'sort\' => true, \'args\' => array( \'orderby\' => \'id\' ), \'query_var\' => \'issue\', \'rewrite\' => array( \'slug\' => \'issues\' ) ) );
资料来源:
http://codex.wordpress.org/Taxonomies#Registering_a_taxonomy2) Filtering "request" and adding "orderby":
function my_default_orderby( $vars ) {
$screen = get_current_screen();
if ( \'edit-issue\' == $screen->id ) {
if ( !isset( $vars[\'orderby\'] ) ) {
$vars[\'orderby\'] = \'id\';
}
}
return $vars;
}
if ( is_admin() )
add_filter( \'request\', \'my_default_orderby\' );
资料来源:
http://scribu.net/wordpress/custom-sortable-columns.html#comment-4456
SO网友:realmag777
在创建wp主题时,我的决定是通过javascript实现:一般来说。后端包含的js
add_action(\'wp_head\', \'thememakers_theme_wp_head\');
function thememakers_theme_admin_head() {
wp_enqueue_script(\'thememakers_theme_admin_js\', THEMEMAKERS_THEME_URI . \'/admin/js/general.js\');
}
总的来说。js写入:
jQuery(document).ready(function() {
//for events
var event_link=jQuery(\'.wp-submenu-wrap a[href$="?post_type=event"]\').eq(0);
jQuery(event_link).attr(\'href\', jQuery(event_link).attr(\'href\')+"&orderby=ev_mktime&order=desc");
});
在哪里
ev_mktime 是自定义post meta。
仅此而已。简单而有力。