Intereting Posts
Принуждение перезагрузки editor-style.css Получение значения параметров плагина, сохраненного с помощью настройки Опубликовать данные в отдельных div с добавочным классом с помощью WP_Query Зачем нужны поля адреса пользователя Удалите определенный shortcode из get_the_content () Измените вторую роль в зависимости от первого Пользовательские роли пользователя для доступа к определенным частям сайта Как петля в петле (покажите детей, а затем внуков) Запросы с текущего года Дополнительное строка / текстовое поле на странице продукта (WooCommerce) Динамическое создание настраиваемых элементов типа сообщения и их обновление get_post orderby не работает в плагине Торговая марка WooCommerce используя дочернюю тему, после ввода моего js-файла он загружается перед jquery Как я могу использовать WP_Query для отображения только 1 сообщения из пользовательского типа сообщения, если запрос возвращает сообщения с идентификатором соответствия в пользовательском поле

Сортировка сообщения по атрибутам 'order'

Как отсортировать отображаемые сообщения по атрибуту «заказ»?

В functions.php я добавил «Атрибуты» для сообщений

function wpzen_add_attributes_to_post() { add_post_type_support('post', 'page-attributes'); } add_action('init', 'wpzen_add_attributes_to_post'); function wpzen_change_post_order($query) { if($query->is_main_query()) { $query->set('orderby', 'menu_order'); } } add_action('pre_get_posts', 'wpzen_change_post_order'); 

В коде отображается обзор сообщений, как показано ниже:

 <?php $show_posts = '12'; $cat_name = 'Products'; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $my_query = new WP_query('category_name=' . $cat_name . '&showposts=' . $show_posts . '&paged=' . $paged ); global $wp_query; $wp_query->in_the_loop = true; while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID;?> <a href="<?php echo get_permalink(); ?>"> <h2><?php the_title(); ?></h2> </a> <?php the_content( $more_link_text , $strip_teaser ); ?> <?php endwhile; ?> 

Как сортировать сообщения в соответствии с атрибутом «порядок» (по возрастанию или по убыванию).

Solutions Collecting From Web of "Сортировка сообщения по атрибутам 'order'"

Ну, боюсь, это не сработает. Позвольте мне объяснить, почему …

В функции wpzen_change_post_order вы проверяете, $query->is_main_query() . Если быть точным, это проверяет, является ли заданный запрос основным запросом для текущей страницы – запрос, сгенерированный WP, для отображения сообщений по умолчанию для текущей страницы.

Поэтому, если вы создаете свой собственный объект WP_Query , это условие будет ложным, и ваша функция не будет устанавливать параметр orderby .

Как это изменить?

Есть способы исправить это. Во-первых: удалите оператор if из wpzen_change_post_order . Но тогда вы должны быть осторожны и добавить некоторые другие проверки там, так что вы будете уверены, что вы изменяете только те запросы, которые вы действительно хотите. (Особенно вы должны проверить, if ( ! is_admin() ) )

Второй способ, намного проще, я думаю … Добавьте параметр WP_Query прямо в ваш WP_Query . Таким образом, код, отображающий сообщения, будет выглядеть так:

 <?php $show_posts = '12'; $cat_name = 'Products'; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $my_query = new WP_Query( array( // <- It's better to use array 'category_name' => $cat_name, 'posts_per_page' => $show_posts, // <- showposts is deprecated for long time, so use posts_per_page instead 'paged' => $paged, 'orderby' => 'menu_order' ) ); global $wp_query; // <- I'm not sure what do you want to accomplish with these 2 lines $wp_query->in_the_loop = true; while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID;?> <a href="<?php echo get_permalink(); ?>"> <h2><?php the_title(); ?></h2> </a> <?php the_content( $more_link_text , $strip_teaser ); ?> <?php endwhile; ?>