簡體   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