Intereting Posts
Ссылка «Читать дальше» не отображается, когда длина сообщения находится под длиной выдержки Сделайте два вида архива типа сообщения по двум URL-адресам как сделать два пользовательских типа post post-base slug одинаковыми, тогда имя таксономии или мета-значение в URL-адресе Масонство в цикле Пользовательская структура константной ссылки для пользовательских результатов типа сообщения в 404 Как я могу исправить проблемы с тем, что пользователи не могут публиковать и отправлять их только после проверки установки Multisites? Создать пользовательский WP_List_Table в post_type Nginx Rewrite Rule :: index.html добавлено к каждой постоянной ссылке Термины таксономии сортируются по … Фамилия! Как добавить replyToUrl schema.org в комментарии WordPress? перенос содержимого из одной установки WordPress в многопользовательскую URL таксономии с пользовательским типом префикса типа переписки Запрос на импорт данных из одной таблицы MultiSite в другую (страницы / подстраницы) Будет ли документация php противоречить документации WordPress? Как получить shortcode, работающий из настраиваемого мета поля

последние сообщения-виджет отображает все сообщения на странице архива, но отлично работает в другом месте

Я заметил, что последние сообщения в моем нижнем колонтитуле отображают все сообщения. В любом месте на моей странице он отображает только количество сообщений, которые он должен. Я использую настраиваемую тему, и это мой архив archive.php:

<?php get_header(); ?> <div id="maincol"> <article id="page-<?php the_ID(); ?>" class="page"> <header class="page-header"> <h1 class="page-title">Post Type Archive Title</h1> </header> <?php $posts = query_posts($query_string . '&orderby=meta_value_num&meta_key=premium&posts_per_page=6'); ?> <?php if ( have_posts() ) : ?> <h3 class="toggle">Filter</h3> <div id="filterbox"> <?php echo do_shortcode('[ULWPQSF id=82 formtitle="0"]'); ?> <small class="toggle-close">close</small> </div> <?php echo '<div class="objects">'; echo '<ul class="list-objects clear">'; while ( have_posts() ) { the_post(); get_template_part('content', 'my-post-type'); } if(function_exists('wp_pagenavi')) : wp_pagenavi(); endif; endif; echo '</ul>'; echo '</div>'; wp_reset_query(); wp_reset_postdata(); ?> </article> </div><!-- maincol--> <aside class="sidebar" id="sidebar-main"> <?php get_sidebar(); ?> </aside> <div class="clear"></div> <?php get_footer(); ?> 

Вы можете заметить ошибку?

Solutions Collecting From Web of "последние сообщения-виджет отображает все сообщения на странице архива, но отлично работает в другом месте"

Благодаря комментариям от @Pieter Goosen и @cybmeta я изменил способ упорядочить сообщения на странице архива, используя pre_get_posts

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

Я добавил следующие строки в файл functions.php (Edit: added! Is_admin (), как было предложено в комментарии Питера):

 function custom_archive_query($query) { if ( is_post_type_archive('my-custom-post-type') && $query->is_main_query() && !is_admin() ) { $query->set( 'posts_per_page', 8 ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'meta_key', 'premium'); $query->set( 'order', 'DESC' ); } } add_action('pre_get_posts', 'custom_archive_query'); 

Очень важно использовать $query->is_main_query() в if -statement, потому что в противном случае любой другой вид запроса (например, меню WP или последние сообщения-виджеты) ничего не отображает.