WordPress как на ладони
Прибыльная монетизация. Выгодно. Безопасно. Стабильно.

wp()WP 2.0.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()

Хуков нет.

Возвращает

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

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

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

Примеры

0

#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 6.1.1

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;
	}
}
6 комментариев
    Войти