Intereting Posts
Страница защищенного паролем не запрашивает пароль Предотвращение добавления дублирующихся страниц Получить размер изображений вложений вложений и использовать их в коде для встраивания Изменение атрибутов ссылок для Wp_Link_Pages Как добавить текст перед сообщениями Как ограничить плагин с определенных страниц без редактирования его ядра Ошибка при получении писем с @ Gmail.com или @Yahoo. в WordPress с использованием функции PHP Mail Использование крюка 'draft_to_publish' (переход статуса сообщения) Мусор в начале wp-config.php – была ли эта установка WP скомпрометирована? Как отобразить значение настраиваемого поля на странице? Как настроить максимальное количество пользователей на 17 000 Сообщение от формы до конца post_meta index.php Не показывать пользовательские сообщения / термины Вставить пользовательский div между сообщениями Добавить скрипт в зависимости от зарегистрированного скрипта

Удалите тег meta robots из wp_head

Мне нужно удалить только эту строку <meta name=robots content="noindex,follow"/> из wp_head но не может найти правильный крючок, чтобы использовать его с remove_action() .

 <meta name=robots content="noindex,follow"/> 

В основном я хочу, чтобы удалить только эту строку из заголовка, но только для страницы поиска. Поэтому в этом случае я бы использовал нечто похожее:

 if ( is_search() ) { remove_action('wp_head', 'whatever-the-action-name-is'); } 

Solutions Collecting From Web of "Удалите тег meta robots из wp_head"

 add_filter('wpseo_robots', 'yoast_no_home_noindex', 999); function yoast_no_home_noindex($string= "") { if (is_home() || is_front_page()) { $string= "index,follow"; } return $string; } 

это должно быть хорошо, я думаю .. где-то в вашей теме functions.php и должен делать трюк.

Основываясь на ваших комментариях к моему другому ответу, подразумевая, что вы явно хотите сохранить «препятствовать поисковым системам индексировать этот сайт», после более тщательного изучения основного источника WordPress (особенно default-filters.php ), я думаю, что это, вероятно, что вы были в конце концов:

 add_action( 'posts_selection', 'indexSearchPage' ); function indexSearchPage() { // Be sure to include the priority for the action or it won't be removed if( is_search() ) remove_action( 'wp_head', 'noindex', 1 ); } 

Я использую posts_selection action hook, поскольку это первый крючок в программе загрузки WordPress, которая имеет доступ к условным тегам . Вы можете использовать более поздние действия вплоть до wp_head , но если вы используете wp_head , вам нужно добавить действие с приоритетом менее 1 поскольку noindex добавляется с приоритетом 1 :

 add_action( 'wp_head', 'indexSearchPage', -1 ); 

В качестве альтернативы можно условно обмануть WordPress, считая, что «препятствовать поисковым системам индексировать этот сайт» отключен:

 add_action( 'posts_selection', 'indexSearchPage' ); function indexSearchPage() { if( is_search() ) { $alloptions = wp_load_alloptions(); $alloptions[ 'blog_public' ] = '1'; wp_cache_set( 'alloptions', $alloptions, 'options' ); wp_cache_set( 'blog_public', '1', 'options' ); } } 

Я бы рекомендовал просто снять флажок «Отказывать поисковые системы от индексации этого сайта» в Settings > Reading на панели управления (это должно удалить метатеги, соответствующие роботу, со всех страниц вашего сайта), а затем вручную добавить метатег назад в заголовок вашей темы с использованием условных выражений, например:

 if( ! is_search() ) echo( '<meta name="robots" content="noindex,nofollow" />' ); 

Возможно, вам придется изменить условия для достижения желаемого эффекта, но я думаю, что вы поняли эту идею.

Если вы не хотите изменять свою тему, вы можете прикрепить ее к wp_head действия wp_head :

 add_action( 'wp_head', 'noRobots' ); function noRobots() { if( ! is_search() ) echo( '<meta name="robots" content="noindex,nofollow" />' ); } 

Я получил его, выход контролируется плагином WordPress SEO, так как это включено на сайте, поэтому мне пришлось сделать крошечный жесткий код в файле plugin file -frontend.php

Очевидно, мне не очень нравится этот грязный обходной путь, но он теперь работает, выводя эту мета на страницу поиска, как я хочу.

В файле плагина class-frontend.php мне пришлось заменить строку 552 на эту

 if ( is_search() ) { $robots['follow'] = 'nofollow'; } else { $robots['follow'] = 'follow'; } 

Это то, что вы ищете?

 if ( is_search() ) { remove_action( 'do_robots', 'do_robots'); }