Intereting Posts
Самый простой способ позволить клиентам редактировать страницы Индексы экземпляров виджетов начинаются с «2» в таблице «wp_options» Срок действия корзины Woocommerce для зарегистрированных пользователей Какой язык кодирования использовать? Шаблон страницы как пользовательский тип типа сообщения 3.5 media.editor: каков слушатель событий для выбора изображения? Медленный запрос SQL_CALC_FOUND_ROWS Не удалось создать каталог / wp-content / upgrade / Пользовательский контент для загрузки мультимедиа для вставки специального короткого кода сообщения Разрешить редакторам переключаться на сайты (Multisite) получить только тот предмет, который вы нажимаете Динамический шаблон page.php для пользовательских типов сообщений Точечный статический контент, такой как css и js, для cookieless subdomain Файлы пустые после перемещения с FTP Гость автора не отображается в шаблоне автора

Дубликаты с циклом WP_Query

Я показываю только свои сообщения на главной странице с отличным изображением. Моя проблема заключается в том, что при каждой загрузке следующей страницы я получаю те же результаты, что и получение дубликатов. Я использую заказ по настраиваемому полю. Любые указания / идеи, которые могут привести к этой проблеме, приветствуются. Ниже мой основной цикл

// Layout if(is_category()) { $post_layout = blt_get_option('category_post_layout', 'normal'); } elseif(is_author()) { $post_layout = blt_get_option('author_post_layout', 'normal'); } elseif(is_archive()) { $post_layout = blt_get_option('archive_post_layout', 'normal'); } else { $post_layout = blt_get_option('home_post_layout', 'normal'); } $i = 1; if(have_posts()){ while(have_posts()){ the_post(); get_template_part( 'inc/template-parts/content', $post_layout ); // Ad spot #4 if($ad_spot_between_posts = blt_get_option('spot_between_posts', 'none') != 'none'){ $ad_posts_frequency = blt_get_option('spot_between_posts_frequency', 3); // take into account ad frequency if(($i % (int) $ad_posts_frequency) == 0){ blt_get_ad_spot( 'spot_between_posts' ); } } $i++; } }else{ $has_posts = false; } 

И это мой индекс:

  <?php get_header(); ?> <div id="site-content" class="clearfix"> <?php // Front Page - Top of container if(is_front_page() and is_active_sidebar('front-top_of_container')){ dynamic_sidebar('front-top_of_container'); } ?> <div id="site-content-column"><?php if(is_archive()){ blt_get_title(); } if(have_posts()){ echo '<div class="row">'; include(get_template_directory().'/loop.php'); echo '</div>'; // Previous/next page navigation. if(!blt_get_option('enable_infinite_scrolling')){ the_posts_pagination(array( 'prev_text' => '<i class="fa fa-chevron-left"></i>', 'next_text' => '<i class="fa fa-chevron-right"></i>', 'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'blue' ) . ' </span>', )); } }else{ get_template_part( 'inc/template-parts/content', 'none' ); } ?> </div><?php # # SIDEBAR # ======================================================================================== # Load the sidebar if needed # ======================================================================================== # if(in_array(blt_get_option('sidebar_layout', 'right'), array('left', 'right'), true)){ get_sidebar(); } ?> </div> <?php get_footer(); ?> в  <?php get_header(); ?> <div id="site-content" class="clearfix"> <?php // Front Page - Top of container if(is_front_page() and is_active_sidebar('front-top_of_container')){ dynamic_sidebar('front-top_of_container'); } ?> <div id="site-content-column"><?php if(is_archive()){ blt_get_title(); } if(have_posts()){ echo '<div class="row">'; include(get_template_directory().'/loop.php'); echo '</div>'; // Previous/next page navigation. if(!blt_get_option('enable_infinite_scrolling')){ the_posts_pagination(array( 'prev_text' => '<i class="fa fa-chevron-left"></i>', 'next_text' => '<i class="fa fa-chevron-right"></i>', 'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'blue' ) . ' </span>', )); } }else{ get_template_part( 'inc/template-parts/content', 'none' ); } ?> </div><?php # # SIDEBAR # ======================================================================================== # Load the sidebar if needed # ======================================================================================== # if(in_array(blt_get_option('sidebar_layout', 'right'), array('left', 'right'), true)){ get_sidebar(); } ?> </div> <?php get_footer(); ?> 

Изменить: Бесконечная функция прокрутки

 function blt_infinitepaginate(){ $has_posts = true; $type = isset($_POST['type']) ? $_POST['type'] : false; $loopFile = $_POST['loop_file']; $paged = $_POST['page_no']; $posts_per_page = get_option('posts_per_page'); $post_id = isset($_POST['post_id']) ? $_POST['post_id'] : false; # Load the posts if($post_id){ include(get_template_directory().'/loop-hottest.php'); }else{ query_posts( array( 'paged' => $paged+1, 'post_status' => 'publish', 'post__not_in' => get_option('sticky_posts') ) ); include(get_template_directory().'/loop.php'); } if(!$has_posts){ return false; } exit; } function blt_change_main_loop( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( is_home() and isset($_GET['page'])) { $query->set( 'posts_per_page', $_GET['page'] * get_option('posts_per_page') ); return; } } add_action( 'pre_get_posts', 'blt_change_main_loop', 1 ); } в function blt_infinitepaginate(){ $has_posts = true; $type = isset($_POST['type']) ? $_POST['type'] : false; $loopFile = $_POST['loop_file']; $paged = $_POST['page_no']; $posts_per_page = get_option('posts_per_page'); $post_id = isset($_POST['post_id']) ? $_POST['post_id'] : false; # Load the posts if($post_id){ include(get_template_directory().'/loop-hottest.php'); }else{ query_posts( array( 'paged' => $paged+1, 'post_status' => 'publish', 'post__not_in' => get_option('sticky_posts') ) ); include(get_template_directory().'/loop.php'); } if(!$has_posts){ return false; } exit; } function blt_change_main_loop( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( is_home() and isset($_GET['page'])) { $query->set( 'posts_per_page', $_GET['page'] * get_option('posts_per_page') ); return; } } add_action( 'pre_get_posts', 'blt_change_main_loop', 1 ); } в function blt_infinitepaginate(){ $has_posts = true; $type = isset($_POST['type']) ? $_POST['type'] : false; $loopFile = $_POST['loop_file']; $paged = $_POST['page_no']; $posts_per_page = get_option('posts_per_page'); $post_id = isset($_POST['post_id']) ? $_POST['post_id'] : false; # Load the posts if($post_id){ include(get_template_directory().'/loop-hottest.php'); }else{ query_posts( array( 'paged' => $paged+1, 'post_status' => 'publish', 'post__not_in' => get_option('sticky_posts') ) ); include(get_template_directory().'/loop.php'); } if(!$has_posts){ return false; } exit; } function blt_change_main_loop( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( is_home() and isset($_GET['page'])) { $query->set( 'posts_per_page', $_GET['page'] * get_option('posts_per_page') ); return; } } add_action( 'pre_get_posts', 'blt_change_main_loop', 1 ); } 

Solutions Collecting From Web of "Дубликаты с циклом WP_Query"

Трудно правильно ответить на ваш вопрос с количеством контекста в вашем вопросе, но я попытаюсь использовать контекст из вашего предыдущего вопроса

Имея немного больше контекста здесь, в шаблоне, и если бы я правильно прочитал это, это на вашем index.php, я все же верю и поддерживаю свою точку зрения, что pre_get_posts – ваш ответ. Решите эту проблему следующим образом (только если это не статическая передняя страница, потому что следующее не будет работать)

  • Удалите свой пользовательский запрос. Вернитесь к настройке по умолчанию, где вы обычно получаете все сообщения

  • Затем используйте pre_get_posts чтобы изменить основной запрос на главной странице, чтобы отображать сообщения с эскизами. Это должно решить вашу проблему с разбивкой на страницы

Добавьте в свои функции functions.php следующее: ( Требуется хотя бы PHP 5.3 )

 add_action( 'pre_get_posts', function ( $q ) { if ( $q->is_home() // Target the home page only && $q->is_main_query() // Target only the main query ) { $meta_query = array( array( 'key' => '_thumbnail_id' ) ); $q->set( 'meta_query', $meta_query ); } }); 

Если это не решит вашу проблему, вам действительно нужно опубликовать больше контекста.

РЕДАКТИРОВАТЬ

Я не буду вдаваться в подробности о query_posts и о том, насколько плох это действительно так, я рассмотрел это в своем предыдущем ответе на ваш предыдущий вопрос. Поскольку вы, скорее всего, не кодировали это, я бы связался с разработчиком об этом.

В любом случае, чтобы быстро решить проблему с бесконечной прокруткой, вам нужно добавить следующие аргументы query_posts

 'meta_query' => array( array( 'key' => '_thumbnail_id' ) ), 

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