Intereting Posts
Определить текущую тему WordPress Пользовательская кнопка удаления в настройках плагина post_thumbnail_html только для определенного размера большого пальца Статистика WordPress продолжает показывать несуществующий пост в качестве главного сообщения? Как использовать вложенный короткий код для визуализации значения атрибута в родительском коротком коде Проблема перемещения моего сайта LivePress на локальный хост Показать последние сообщения x из всех категорий в Custom Post Type / Taxonomy Необходимо хранить пользовательскую информацию (много-много связей), предпочтительно не как пользовательский мета Локализованный WordPress намного медленнее? Могу ли я использовать Woocommerce для выполнения заказов, но не для оплаты? Заказ изображений галереи без использования короткого кода в теме Пользовательская таксономия в архиве пользовательского типа с разбивкой на страницы Как установить отмеченные сообщения, используя флажок в окне редактирования сообщений? теги shortcode не работают в do_shortcode Вставить страницу WordPress через внешний (cron) скрипт?

Пользовательские сортируемые столбцы, упорядоченные по метазначению?

Я понятия не имею, почему моя сортируемая функция не сортирует мои «события» моей персонализированной пост-мета. У меня есть custom-post-type с именем wr_event … У меня установлены мои настраиваемые столбцы, и моя пост-мета отображается в столбцах, как и я. Ручка «Event-Date» даже уже является сортируемой ссылкой! Единственное, если я нажимаю на ссылку сортировки для даты события, список не обновляется. Функция запускается, поскольку я вижу перезагрузку страницы, однако она не сортирует anyhing.

Несмотря на то, что URL-адрес переключается между этими двумя состояниями, если я нажимаю ссылку сортировки …

http://url/wp-admin/edit.php?post_type=wr_event&orderby=event_date&order=desc

http://url/wp-admin/edit.php?post_type=wr_event&orderby=event_date&order=asc

Однако список всегда выглядит одинаково!

Вот мой весь код для пользовательских столбцов:

 add_filter("manage_edit-wr_event_columns", "wr_event_edit_columns"); function wr_event_edit_columns($columns) { $columns = array( "cb" => "<input type=\"checkbox\" />", "title" => "Event", "event_date" => "Event Date", "type" => "Type", ); return $columns; } add_action("manage_posts_custom_column", "event_custom_columns"); function event_custom_columns($column) { global $post; switch ($column) { case "event_date": $custom = get_post_custom(); echo $custom['_wr_event_date'][0]; break; case "type": echo get_the_term_list($post->ID, 'event_type', '', ', ',''); break; } } add_filter("manage_edit-wr_event_sortable_columns", "wr_event_sortable_columns"); function wr_event_sortable_columns( $columns ) { $columns['event_date'] = 'event_date'; return $columns; } add_filter("request", "event_column_orderby"); function event_column_orderby( $vars ) { if ( isset( $vars['orderby'] ) && 'event_date' == $vars['event_date'] ) { $vars = array_merge( $vars, array( 'meta_key' => '_wr_event_date', 'orderby' => 'meta_value_num', 'order' => 'asc' ) ); } return $vars; } 

Это потому, что вы проверяете 'event_date' == $vars['event_date'] not 'event_date' == $vars['orderby] .

Но не используйте фильтр request . Вместо:

 add_action( 'pre_get_posts', 'event_column_orderby' ); function event_column_orderby( $query ) { if( ! is_admin() ) return; $orderby = $query->get( 'orderby'); if( 'event_date' == $orderby ) { $query->set('meta_key','_wr_event_date'); $query->set('orderby','meta_value_num'); } } 

… и не устанавливайте вручную order как тогда вы не увидите разницу при переключении между ASC / DESC.