繁体   English   中英

如何在WordPress管理面板中按日期列顺序?

[英]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.

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