[英]How order by date column in WordPress admin panel?
我正在使用WordPress的事件管理器插件。 我添加了一个包含Event的开始时间的列,我想在管理面板中订购。 列是可排序的,显示时间戳,但它不是正确的,它是随机的。
这是我的代码:
add_filter('manage_edit-event_columns', 'my_columns');
function my_columns($columns) {
$columns['datanowa'] = 'Nowa data wydarzenia';
return $columns;
}
add_action('manage_posts_custom_column', 'my_show_columns');
function my_show_columns($name) {
global $post;
switch ($name) {
case 'datanowa':
$nowadata = new DateTime();
$EM_Event = em_get_event($post, 'post_id');
$nowadataunix = $EM_Event->start;
$nowadata->setTimestamp($nowadataunix);
//echo $nowadata->format('j F Y');
echo $nowadataunix;
break;
}
}
add_filter( 'manage_edit-event_sortable_columns', 'my_sortable_banana_column');
function my_sortable_banana_column( $columns ) {
$columns['datanowa'] = 'datanowa';
return $columns;
}
由于WordPress不知道如何处理'orderby = datanow',因此您必须通过更改查询变量来更改它。 而不是使用事件管理器方法来获取startdate,尝试找出使用哪个元字段并将其直接查询到您的查询中,如下所示
function sort_datanowa_column( $vars ) {
if ( isset( $vars['orderby'] ) && 'datanowa' == $vars['orderby'] ) {
$vars = array_merge( $vars, array(
'meta_key' => 'start_date', // Find correct meta field key
'orderby' => 'meta_value_num'
) );
}
return $vars;
}
add_filter( 'request', 'sort_datanowa_column' );
您还可以查看http://www.admincolumns.com ,它允许您根据自定义字段添加列,并使它们可排序,可过滤和编辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.