Как Отсортировать Столбец Администратора Настраиваемого Поля По Дате

  • Автор темы Joaovaralonga
  • Обновлено
  • 22, Oct 2024
  • #1

У меня есть веб-сайт WordPress с настраиваемым типом сообщений под названием «Курсы».

На странице панели управления WordPress со списком каждого курса я добавил новый столбец, отображающий настраиваемое поле, представляющее собой дату, называемую «онлайн-начало». Дата начала онлайн — это дата, указанная вручную и не имеющая отношения к дате публикации публикации.

Я хотел бы иметь возможность сортировать список курсов по дате, которая теперь отображается в столбце «Начало онлайн».

Я добавил функцию сортировки, включенную в

 //add custom field column to post list
function add_admin_course_column_title( $columns ) {

$columns['online_start'] = __( 'Online Start' );

return $columns;
}
add_filter( 'manage_courses_posts_columns', 'add_admin_course_column_title' );

function add_admin_course_column( $column, $post_id ) {

if ( 'online_start' === $column ) {

$onlinestart = get_post_meta( $post_id, 'online_start', true );

if ( ! $onlinestart ) {

_e( 'n/a' );

} 

else {

echo $onlinestart;

}

}
}
add_action( 'manage_courses_posts_custom_column', 'add_admin_course_column', 10, 2);

function add_sortable_date_column( $columns ) {

$columns['online_start'] = 'online_start';

return $columns;
}
add_filter( 'manage_edit-courses_sortable_columns', 'add_sortable_date_column');
 
function below, but the dates are not sorting in the correct order. I believe this is because I need to format the $onlinestart переменная как дата, и я не совсем понимаю, как это сделать.

Любая помощь будет очень признательна.

add_sortable_date_column

#custom-post-types #custom-field #sort

Joaovaralonga


Рег
19 Oct, 2019

Тем
98

Постов
218

Баллов
728
  • 25, Oct 2024
  • #2

Функция add_sortable_date_column регистрирует только столбцы как сортируемые.
Добавьте еще одну функцию, чтобы сообщить WordPress, как сортировать столбцы.

 
 function post_types_admin_order( $wp_query ) {

if (is_admin()) {

$post_type = $wp_query->query['post_type'];

if ( $post_type == 'your post type name') { //like post 

$wp_query->set('orderby', 'column table header tag id'); //like comments

$wp_query->set('order', 'DESC'); //change order

}

}

}

add_filter('pre_get_posts', 'post_types_admin_order');
 
||answer|| function courses_columns_orderby( $query ) { if( ! is_admin() ) return; $orderby = $query->get( 'orderby'); switch( $orderby ){ case 'online_start': $query->set('meta_key','online_start'); $query->set('orderby','meta_value'); break; default: break; } } add_action( 'pre_get_posts', 'courses_columns_orderby' );
 

4groupelectrou


Рег
23 Oct, 2013

Тем
92

Постов
210

Баллов
690
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно