Intereting Posts
Развертывание WordPress для клиентов – к чему они имеют доступ? Как показать сообщения, упорядоченные по случайным Как отображать код, если это не определенные страницы? Пользовательские типы сообщений типа, не заполняющие Электронная почта пользователя электронной почты Trigger Woocommerce Как вы отформатируете дату как двухзначный год? (например, «10.12.10» вместо «10.12.2010») Плагин Timber (Twig) не отображает сообщения пользовательского типа на индексной странице WP_Query () с настраиваемым типом сообщения и таксономией – получить все условия? Каким будет URL-адрес для отображения редактора изображений WordPress с изображением из медиа-библиотеки? Как связать файл с администратором с помощью кнопки? Все в одном плагине SEO – категория INDEX Пользовательская таксономия не отображается в меню Как создать заметку в настраиваемом типе сообщений? get_post_meta печатает пустые поля, но это не должно быть Get_Posts, только если в обеих категориях

Как гарантировать, что is_search () возвращает false после query_posts

Я знаю, что я не должен использовать query_posts

Дело в том, что у меня есть программа, которая уже делает это.

query_posts(""); echo "is_search():" . is_search(); query_posts("s=kucing"); echo "is_search after():" . is_search(); 

Теперь первое эхо возвращается пустым.

Второй возвращает 1

Интересно, есть ли какая-то глобальная переменная, которую я могу установить в 0, так что is_search () вернет false, хотя я сделал

 query_posts("s=kucing"); 

Solutions Collecting From Web of "Как гарантировать, что is_search () возвращает false после query_posts"

Ваша настоящая большая проблема заключается в использовании query_posts . Он разбивает основной объект запроса и устанавливает основной объект запроса в запрос, сделанный query_posts . То, что вы видите, вполне нормально.

Ваше реальное решение здесь с использованием query_posts будет состоять в том, чтобы вернуть основной запрос обратно к тому, каким он должен быть. Здесь находится wp_reset_query() . Если это обычная страница, is_search() вернет false после wp_reset_query() поскольку основной запрос сбрасывается в основной запрос страницы.

 query_posts( '&s=crap' ); // Do your loop as normal wp_reset_query(); // Add this after your loop var_dump( is_search() ); // Will return bool ( false ) 

Помните, что использование query_posts сильно обескуражено. Вы должны использовать WP_Query

Вы можете использовать global $wp_query и установить is_search в false;

 global $wp_query; query_posts(""); //is_search is false now query_posts("s=kucing"); //is_search is set to true $wp_query->is_search = false; //is_search is set to false