Поддержка Проблемы и решения Неверный заголовок (title) у страницы категории

  • Имеется главная страница с таким кодом

    get_header(); ?>
    
    	<div id="primary" class="content-area">
    		<div id="content" class="site-content" role="main">		
    						<?php if ( have_posts() ) :							
    			query_posts('posts_per_page=-1&cat=4&orderby=date(dmY)&order=ASC'); ?>									
    			<?php /* The loop */ ?>			
    			<?php while ( have_posts() ) : the_post(); ?>		
    
    <?php get_template_part( 'anons', 'news', get_post_format() ); ?>
    
    		
    
    			<?php endwhile; ?>
    		
    
    		<?php rewind_posts(); ?>
    		
    
    				
    <h2>Другое</h2>
    
    				 				
    			<?php query_posts('posts_per_page=10&cat=8&orderby=date(dmY)&order=DESC'); ?>			
    			<?php /* The loop */ ?>			
    			<?php while ( have_posts() ) : the_post(); ?>						
    				<?php get_template_part( 'anons', 'news2', get_post_format() ); ?>			
    
    				
    
    			<?php endwhile; ?>				
    		
    
    		
    			
    
    		<?php else : ?>
    
    			<?php get_template_part( 'content', 'none' ); ?>
    		<?php endif; ?>		
    
    	</div><!-- #content -->	
    	</div><!-- #primary -->	
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    И имеется код страницы, которая установлена в качестве страницы записей в настройках WordPress

    get_header(); ?>
    
    	<div id="primary" class="content-area">
    		<div id="content" class="site-content" role="main">
    		<?php if ( have_posts() ) : 
    			query_posts('cat=5'); ?> 
    			<?php /* The loop */ ?>			
    			<?php while ( have_posts() ) : the_post(); ?>								
    				<?php get_template_part( 'excerpt', get_post_format() ); ?>
    				<div class="anons">
    				<a href="<?php the_permalink() ?>#comments">
    					<?php
    					if (get_comments_number() == 0) {
    						echo 'Нет комментариев';
    					}	else {
    						plural_form(
    							get_comments_number(),
    							array('комментарий','комментария','комментариев')
    						);
    					}
    					?>
    				</a>							
    				</div>
    			<?php endwhile; ?>
    
    			<?php twentythirteen_paging_nav(); ?>
    
    		<?php else : ?>
    			<?php get_template_part( 'content', 'none' ); ?>
    		<?php endif; ?>
    
    		</div><!-- #content -->
    	</div><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Проблема в том, что зайдя на эту страницу записей, в заголовке отображается заголовок последней записи из категории 4. В чем может быть проблема?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Yuri

    (@yube)

    В чем может быть проблема?

    В том, что заголовок формируется до того, в внутри шаблона начальная выборка подменяется другой (query_posts). Правильнее использовать хук ‘pre_get_posts’ там, где это возможно.

    А где использовать этот хук? В functions.php или можно на странице прописывать функции? Просто ни разу с ним не сталкивался.

    Модератор Yuri

    (@yube)

    В functions.php или можно на странице прописывать

    Конечно, в functions.php темы или в плагине. В шаблоне — слишком поздно. Шаблоны подтягиваются когда уже почти всё сделано и осталось только вывести.

    Матчасть тут: https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

    В Инете куча статей на русском об использовании этого механизма. Потому что он кошерный 🙂

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Неверный заголовок (title) у страницы категории» закрыта для новых ответов.