Intereting Posts

На странице тега отображается только 10 сообщений

У меня была проблема с этим в течение довольно долгого времени, и я не могу, чтобы жизнь меня поняла. Я использую Multi-site и не уверен, что это имеет к этому какое-либо отношение или нет, поэтому имейте это в виду.

Проблема:

При нажатии на теги на пост или пользовательский тип сообщения, я получаю только почтовый индекс по умолчанию, заданный WP, который составляет 10 сообщений в качестве результатов. Pagination отображается внизу для следующих сообщений и более старых сообщений, но когда я нажимаю на любую ссылку, страница 2 не найдена и отправляет мне 404 страницы. Существует сочетание регулярных сообщений, а затем настраиваемых типов сообщений, которые должны отображаться, но независимо от типа сообщения, он показывает только 10, хотя есть сотни.

Сначала я использовал Twentyten способ отображения тегов, который использовал get_template_part() и перенаправлял на страницу loop.php. У меня есть смысл устранить этот процесс и создать мою собственную страницу tag.php и использовать цикл wordpress по умолчанию для запроса сообщений.

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 

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

 global $wp_query; $args = array_merge( $wp_query->query, array( 'post_type' => array('post, cool_tools, tribe_events') ) ); query_posts( $args ); 

Мой код страницы для страницы:

 <div id="nav-below" class="navigation"> <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div> <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div> </div><!-- #nav-below --> 

URL-адрес недостающей страницы:

 /tag/tagname/page/2/ 

Может ли кто-нибудь сказать мне, почему WP не найдет больше тегов?

**Обновить

В соответствии с примером Чипа, вот как это сделать сейчас.

 $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'post', 'tag_slug__and' => $tagname, 'paged' => $paged ); $query = new WP_Query($args); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); 

Тем не менее, когда я нажимаю новые сообщения внизу, он все равно переносит меня на страницу 404 и не найдена для тегов.

Solutions Collecting From Web of "На странице тега отображается только 10 сообщений"

Проблема заключается в query_posts() . Он топает по запросу по умолчанию и убивает вашу разбивку на страницы. Не используйте query_posts() . Фильтр $wp_query на pre_get_posts вместо:

 function wpse123674_pre_get_posts( $query ) { // Only modify the main query on the tag archive index if ( $query->is_main_query && $query->is_tag() ) { $query->set( 'post_type', array('post, cool_tools, tribe_events') ); } } add_action( 'pre_get_posts', 'wpse123674_pre_get_posts' ); 

Это принадлежит functions.php . В файле шаблона просто удалите все ссылки на любую модификацию запроса.

Я также советую, чтобы снова щелкнуть « PERMALINKS -> SAVE », чтобы reflush cache.