2016-11-21 20 views
1

私はWordPress用にEvents Managerプラグインを使用しています。私はEventの開始時刻を列に追加します。この時間までに管理パネルで注文したいと思います。列はソート可能で、タイムスタンプを表示していますが、順序が正しくないのでランダムです。ここでWordPress管理パネルの日付順の順序はどのようになっていますか?

が私のコードです:

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

enter image description here

答えて

0

ワードプレスは「orderbyの= datanow」を処理する方法を知らないので、あなたは、クエリ変数を変更することによって、それを変更する必要があります。代わりにSTARTDATEを取得するには、イベントマネージャのメソッドを使用しての、メタフィールドが使用されているかを調べると、クエリに直接それを照会しようと、あなたはまた、あなたを可能にhttp://www.admincolumns.comを見ている可能性があり、この

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'); 

のようなものカスタムフィールドに基づいて列を追加し、並べ替え可能にフィルタリングして編集可能にします。

+0

正しいメタフィールドが見つかりましたが、私はdidn.tヘルプを見つけました。今私は出版日(ソート可能ではない)と列を追加し、私は開始イベントの時間WPでソートしようとすると、WPはまだ出版日によってソートされていると仮定します。 –

関連する問題