Intereting Posts
Возможно ли иметь несколько строк для каждого столбца / страницы в списке таблиц администратора? Комментарии к странице автора Остановить образы ссылок на самих себя? WP_Query для получения сообщений в определенном теге или имеет post_format Удалить вкладку «Визуальный композитор» из меню панели инструментов Извлечение post_id через действие wp_insert_post (внешний запрос db) Добавить миниатюру изображения с внешнего изображения с помощью плагина Загруженные изображения не отображаются правильно, используя wordpress Форма входа, имя пользователя или адрес электронной почты Как я могу контролировать список страниц, которые может видеть автор? WordPress не создает таксономический архив Две петли на pre_get_post на одной странице Пользовательские почтовые метатеги Создание архива с использованием пользовательской таксономии пользовательский просмотр по

Показать название для посетителей поисковой системы

Я где-то читал *), что внутри объекта wp_query есть часть q , которая идентифицирует посетителей поисковой системы и показывает ключевые слова, которые они искали.

Я сейчас разрабатываю локальный, поэтому я не могу получить доступ / видеть $GLOBALS['wp_query']->q; ,

Может ли кто-нибудь изменить его, если он существует, и / или имеет альтернативное решение для извлечения:

  • название поисковой системы
  • искомая строка поиска внутри движка?

*) Не помню, где, но это как-то связано с «лучшей страницей результатов поиска» и «поисковыми запросами».

EDIT

Это то, что я получил до сих пор:

 // declare the server itself as invalid to only catch search engine results $http_referer = explode( "/", $_SERVER['HTTP_REFERER'] ); $http_referer = $http_referer[2]; $home_url = explode( "/", home_url() ); $home_url = $home_url[2]; // Coming from a search engine: modify to a search string if ( isset( $_SERVER['HTTP_REFERER'] ) && $home_url !== $http_referer ) { // remove previous "s" search query args remove_query_arg( 's' ); $string = parse_url( $_SERVER['HTTP_REFERER'] ); $query = $string['query']; $query = explode( "&", $query ); foreach ( $query as $q ) { $q = urldecode( $q ); $arr = explode( "=", $q ); if ( (string) 'q' === $arr[0] ) $search_string = $arr[1]; } // build a new "s" search query arg: if isset, from the string entered in the search engines input form // in theory that should allow treating it like a normal search result // the draw back is, that a search engine visitor would never get directly to a post or page if ( isset( $search_string ) ) add_query_arg( array( 's' => $search_string ) ); } 

Помимо недостатка, что ни один посетитель поисковой системы не придет к результату напрямую, я бы не поймал все поисковые системы таким образом. Google и Altavista получили аргумент запроса q=searchstring . Yahoo, например. использует p=

Я только что проверил тест на моем размещенном сайте. Я запустил следующее:

 echo '<pre>'; global $wpdb; print_r($wpdb); print_r($GLOBALS); echo '</pre>'; 

Не было найденных «wp_query», «[q]» или «поисковых» переменных. Обратите внимание, что я не смог найти это через поисковую систему, поскольку он не доступен в Интернете.

Просто, чтобы дать вам немного больше, вот весь объект, который я получаю: http://pastebin.com/qV2QSHYf .

Я никогда не слышал об этом из wp_query, но можете ли вы посмотреть на $_SERVER['HTTP_REFERER'] чтобы получить это? Я никогда не пробовал лично.

 if( isset($_SERVER['HTTP_REFERER']) ) print_r( parse_url( $_SERVER['HTTP_REFERER'] ) );