Intereting Posts
Как я могу полностью скрыть термин таксономии от «frontend»? Загрузите json-файл в php Безопасно ли передавать права администратора? Как всегда показывать полноразмерное изображение Каков правильный / безопасный способ удаления всех комментариев? Страницы, кроме Домашней страницы, не отображаются, даже если URL-адрес хорош Предоставлять the_excerpt вместо места_content? is_email () VS sanitize_email () О файле csv импорта Как использовать файл шаблона для определенного URL-адреса без создания страницы для этого шаблона? Новая пользовательская форма – страница пользовательского меню Перенаправление при смене пользовательских пули типа сообщения? Многостраничный get_bloginfo ('stylesheet_directory'), ссылающийся на подпапку как показывать только заметку определенной категории в виджетах архива Дефисы вместо косых черт как разделитель структуры константы

Как гарантировать, что 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