如何在管理页面上为自定义分类设置默认列表顺序?(不带插件)

时间:2012-01-31 作者:MrValueType

我研究这个问题已经有几天了,但都没有成功。。。我想要的很简单:在管理页面上查看按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_taxonomy

2) 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

3 个回复
SO网友:kaiser

你需要看看

/core\\u root/wp admin/includes/class wp terms列表。php

然后添加一个扩展类并使用WP_list_Table 类别和文档。基本上,您正在覆盖orderorderby 在一些自定义插件中。

顺便说一句:“没有插件”从来都不是一个好主意,因为插件可能会向您展示它在代码中的工作原理,因此a)是一个有效的答案,b)是一个很好的参考或起点。

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。

仅此而已。简单而有力。

SO网友:mor7ifer

使用get_terms( \'taxonomy-slug\', array( \'orderby\' => id,\'hierarchical\' => 1 ) ); 然后再重复一遍?

结束