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

wp() WP 2.0

Устанавливает основной запрос (среду WordPress).

Что именно делает wp()?

  • устанавливает или переопределяет глобальные переменные: $wp_query, $wp_the_query;

  • устанавливает header заголовок (в том числе "ошибка 404");

  • создает запрос в базу данных, на основе переданных аргументов (параметр $query_vars), результатами запроса заполняет глобальные переменные;

  • устанавливает глобальные переменные, такие как: $query_string, $posts, $post, $request, $more и $single (для is_singular()), $authordata (для is_author()) и все переменные $wp_query:

    Array
    (
    [page] => 0
    [pagename] => s
    [error] => 
    [m] => 
    [p] => 0
    [post_parent] => 
    [subpost] => 
    [subpost_id] => 
    [attachment] => 
    [attachment_id] => 0
    [name] => s
    [static] => 
    [page_id] => 0
    [second] => 
    [minute] => 
    [hour] => 
    [day] => 0
    [monthnum] => 0
    [year] => 0
    [w] => 0
    [category_name] => 
    [tag] => 
    [cat] => 
    [tag_id] => 
    [author] => 
    [author_name] => 
    [feed] => 
    [tb] => 
    [paged] => 0
    [comments_popup] => 
    [meta_key] => 
    [meta_value] => 
    [preview] => 
    [s] => 
    [sentence] => 
    [fields] => 
    [menu_order] => 
    [category__in] => Array
    	(
    	)
    
    [category__not_in] => Array
    	(
    	)
    
    [category__and] => Array
    	(
    	)
    
    [post__in] => Array
    	(
    	)
    
    [post__not_in] => Array
    	(
    	)
    
    [tag__in] => Array
    	(
    	)
    
    [tag__not_in] => Array
    	(
    	)
    
    [tag__and] => Array
    	(
    	)
    
    [tag_slug__in] => Array
    	(
    	)
    
    [tag_slug__and] => Array
    	(
    	)
    
    [post_parent__in] => Array
    	(
    	)
    
    [post_parent__not_in] => Array
    	(
    	)
    
    [author__in] => Array
    	(
    	)
    
    [author__not_in] => Array
    	(
    	)
    
    [ignore_sticky_posts] => 
    [suppress_filters] => 
    [cache_results] => 1
    [update_post_term_cache] => 1
    [update_post_meta_cache] => 1
    [post_type] => 
    [posts_per_page] => 10
    [nopaging] => 
    [comments_per_page] => 10
    [no_found_rows] => 
    [order] => DESC
    )

Функция работает на основе класса WP{}

Для лучшего понимания, как работает эта функция прочитайте описание хука request

wp() можно использовать, чтобы полностью переписать основной запрос WordPress. Т.е. вызов функции с параметрами изменит множество глобальных переменных и $wp_query в том числе, а значит измениться основной цикл вывода.

Не рекомендую использовать функцию, если вы не уверены в том что делаете. Для изменения основного цикла есть query_posts(), после которого можно вернутся к оригинальному запросу, почистив изменения функцией wp_reset_query(). В случае с wp() сделать это уже не получится.

В конце работы функции срабатывает хук-событие wp.

Работает на основе: WP::main()

Хуков нет.

Возвращает

Ничего не возвращает.

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

wp( $query_vars );
$query_vars(строка/массив)
Параметры запроса. Принимает все те же параметры что и WP_Query.
По умолчанию: Параметры по умолчанию

Примеры

#1 Демонстрация работы

Предположим, что у нас есть постоянная страница. В самом начале кода страницы вызовем функцию так:

<?php wp('author=1&orderby=title&order=ASC'); ?>

Далее идет стандартный вывод цикла.

В результате в цикле будут выведены посты автора с ID = 1, отсортированные по заголовку записи.

Также на этой странице будет срабатывать условный тег is_author(), а не is_single().

Заметки

  • Global. WP. $wp Current WordPress environment instance.
  • Global. WP_Query. $wp_query WordPress Query object.
  • Global. WP_Query. $wp_the_query Copy of the WordPress Query object.

Список изменений

С версии 2.0.0 Введена.

Код wp() WP 5.6

<?php
function wp( $query_vars = '' ) {
	global $wp, $wp_query, $wp_the_query;

	$wp->main( $query_vars );

	if ( ! isset( $wp_the_query ) ) {
		$wp_the_query = $wp_query;
	}
}

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

Еще из раздела: Основной запрос WP

5 комментов
    Войти