简体   繁体   English

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

[英]How order by date column in WordPress admin panel?

I'm using Events Manager plugin for WordPress. 我正在使用WordPress的事件管理器插件。 I add a column with Event's start time and i would like to order by this time in admin panel. 我添加了一个包含Event的开始时间的列,我想在管理面板中订购。 Column are sortable, is displaying timestamp, but it's not ordering correct, it's random. 列是可排序的,显示时间戳,但它不是正确的,它是随机的。

Here is my code: 这是我的代码:

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;
}

在此输入图像描述

Since WordPress doesn't know how to handle 'orderby=datanow', you'll have to change that, by altering the query variables. 由于WordPress不知道如何处理'orderby = datanow',因此您必须通过更改查询变量来更改它。 Instead of using the Event Manager methods to get the startdate, try to find out which meta field is used and query it directly into your query, something like this 而不是使用事件管理器方法来获取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' );

You could also have a look at http://www.admincolumns.com which allows you to add columns based on custom fields and make them sortable filterable and editable. 您还可以查看http://www.admincolumns.com ,它允许您根据自定义字段添加列,并使它们可排序,可过滤和编辑。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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