Intereting Posts
Как узнать, какой приоритет использовать с add_action ()? WordPress добавить функцию размера изображения, не работает в версии 3.8 Как добавить образ WordPress с помощью SQL Использование таблицы стилей «Шрифт для замены тем»? Использование функциональных возможностей плагина во внешнем php-скрипте не работает Можно ли утверждать, что «статья уже появляется на странице»? Создайте плагин, который работает в фоновом режиме Ошибка детской темы «Шаблон отсутствует» Как сохранить ярлык для дополнительного поля пользователя и отобразить его позже? Необходим ли плагин SEO? Заменить метатекст Post Excerpt с полем в моей настраиваемой метабоке Как зарегистрировать активацию и деактивировать крючок в плагине с использованием шаблона ООП Возможно ли разделение таблиц базы данных с помощью HyperDB? Запись в Frontend – все сохраняет, кроме флажков? Есть ли способ использовать пользователей WordPress, но без загрузки всего ядра WordPress?

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