по возрастанию

Я пытаюсь сортировать пользовательский тип сообщения в порядке возрастания (вместо по умолчанию). Регистрация типа сообщения так:

function codex_custom_init() { register_post_type( 'calendar', array( 'labels' => array('name' => __( 'Calendar' ), 'singular_name' => __( 'Calendar' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'calendar'), 'supports' => array('title', 'editor', 'thumbnail'), 'orderby' => 'date', 'order' => 'ASC' ) ); } 

Но почему-то 'order' => 'ASC' не работает? Вероятно, это то, что я делаю неправильно, но есть ли в этом достижения?

Solutions Collecting From Web of "по возрастанию"

Вы не объявляете порядок результатов при регистрации типа сообщения.

Вместо этого вы выполняете в то время, когда запрашиваются результаты. Если вы используете WP_Query для получения результатов, вы добавляете в запрос запрос orderby и order.

http://codex.wordpress.org/Class_Reference/WP_Query

Если вы хотите изменить порядок результатов на страницах архива, таких как http://www.yoursite.com/calendar/, тогда вам нужно отфильтровать существующий запрос, используя фильтр pre_get_posts, например:

 function wpse_167441_reorder_calendar($query) { if ( !is_admin() && $query->is_main_query() ) { if (is_post_type_archive('calendar')) { $query->set('orderby', 'date' ); $query->set('order', 'ASC' ); } } } add_action('pre_get_posts','wpse_167441_reorder_calendar'); 

Если вы хотите, чтобы это было так в области администрирования, вы можете удалить проверку! Is_admin. Обязательно проверьте, что вы не выполняли другие типы сообщений, когда вы это делаете – вот почему условие is_post_type_archive находится там.

http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

Надеюсь, это то, что вам нужно.

Обратите внимание: это просто расширение для другого ответа

Как уже упоминалось в другом ответе, orderby и order являются недопустимыми аргументами, предоставленными для register_post_type

Вы должны тратить свое время и работать по ссылке, приведенной выше.

Я просто хочу поднять это, вы не можете использовать calender качестве имени своего типа. Это зарезервированное имя . Вам нужно будет переименовать свой собственный тип сообщения, вы можете использовать множественное имя, calenders . Вы должны прочитать список, указанный, чтобы убедиться, что вы не используете ни одно из этих имен в качестве таксономии или имен типа публикации