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