WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_reset_query() WP 2.3.0

Аннулирует данные последнего запроса, созданного для использования в произвольном Цикле WordPress.

Произвольный запрос осуществляется функций query_posts(), которая переписывает глобальную переменную $wp_query.

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

✈ 1 раз = 0.000022с = очень быстро | 50000 раз = 0.04с = скорость света

Хуков нет.

Возвращает

Функция не возвращает никаких данных.

Использование

<?php wp_reset_query(); ?>

Примеры

#1. Сброс данных цикла

Пример, показывающий как использовать функцию после произвольного Цикла:

<?php
query_posts('posts_per_page=5');

if( have_posts() ) : while( have_posts() ) : the_post();
	?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
endwhile; endif;

wp_reset_query();
?>

Код wp_reset_query: wp-includes/query.php VER 5.0.1

<?php
function wp_reset_query() {
	$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
	wp_reset_postdata();
}

Cвязанные функции

Из метки: reset

Еще из метки: query (запрос)

Еще из раздела: Запросы

Должен ли составляться проект пдв на азс

Должен ли составляться проект пдв на азс.

sbso78.ru

3 коммента
  • @ Денис cайт: maccommunity.ru

    Здраствуйте.Использовал данную конструкцию на сайте в сайдбаре в блоке свежих новостей,Но теперь везде где используется повторный вывод новостей (например в поиске)в цикле отображаются эти же новости и только они,у меня никак не получается сбросить этот массив .Такое ощущение что wp_reset_query(); просто отказался работать smile .
    Вот код этого блока

    <ul> 
    		<div class="">
    			<ul>
    			<?php get_posts( $mamp ); ?>
    			<?php $mamp = array(  
    				'numberposts'     => 3,  
    				'offset'          => 0,  
    				'category'        => '',  
    				'orderby'         => 'post_date',  
    				'order'           => 'DESC',  
    				'include'         => '',  
    				'exclude'         => '',  
    				'meta_key'        => '',  
    				'meta_value'      => '',  
    				'post_type'       => 'post',  
    				'post_mime_type'  => '',  
    				'post_parent'     => '',  
    				'post_status'     => 'publish'  
    			);  
    
    			$posts = get_posts($mamp);  
    			foreach($posts as $post){ setup_postdata($post); 
    						echo "<li><div class='recentsidenews'><div class='recentsidetime'>";
    							the_time('G:i'); 
    						echo '</div>';
    
    						echo "<div class='recentsidecategory'>";
    							the_category('','');
    						echo "</div>"; 
    						echo "<div class='recentsidezagol'>";
    						echo "<a href='";the_permalink(); echo "'>";the_title();
    						echo "</a></div></div></li><br/>"; 
    						wp_reset_query();  
    				// формат вывода  
    			}   
    				wp_reset_query();
    				wp_reset_query();   
    
    			?>
    			<?php wp_reset_postdata(); ?> 
    			</ul>
    		</div 
    
    		</ul>

    Буду благодарен за рекомендацию как не удаляя самого блока,стабилизировать работу остальных(возможно использующих тот же цикл).Спасибо

    Ответить6.5 лет назад #
    • @ Денис cайт: maccommunity.ru

      Возможно я подумал есть какая-нибудь переменная,которая сбрасывает этот цикл полностью,так как будто раньше он не был использован.Нужна ваша помощь.

      Ответить6.5 лет назад #
      • Валентин

        Столкнулся с этой-же проблемой,решил обнулением переменной $posts.

        Ответить6 лет назад #
Здравствуйте, !     Войти . Зарегистрироваться