Intereting Posts
Связать пользовательские категории с разными идентификаторами пользователей Загрузка сценариев и стилей из функции обратного вызова мета-окна Изменить шаблон страницы программно? Выход из системы перенаправления, а также перенаправление WP-login.php wpdb внутри цикла foreach возвращает только первый результат – найдено 2 других подобных случая Показывать индекс, а не архив для «Собственная почта для собак» с по умолчанию Как использовать класс wpdb для отправки формы в панели управления администратора? Скрыть панель администратора администратора, включая интервал 32 px Как добавить только (суб) емкость роли пользователя? Есть ли файлы .MP3 с расширением большой буквы, разрешенными в коротком коде? Экспорт / импорт или миграция продуктов WooCommerce с изображениями между сайтами? Если пользовательское поле не существует или существует и оно является истинным заголовком? image srcset возвращает false Создание структуры константной ссылки для одного архива таксономии на пользовательский тип сообщения Поиск WP с использованием таксономических условий

Yoast Seo Plugin – автоматически устанавливать индекс в сообщение автоматически, когда сообщение установлено на липкий

Я являюсь наблюдателем контента на сайте wordpress, он использует wordpress seo с помощью плагина yoast . Мой долг включает в себя анализ содержимого и маркировку его липким, если он кажется подходящим. Когда я отмечаю конкретный пост как липкий, есть функция, которая затем устанавливает, что сообщение появляется только на странице категории. Следующее, что мне нужно сделать, – это вручную установить single-post-view в no-index, как указано владельцем сайта.

Поскольку сайт огромен, этот процесс действительно становится утомительным, поэтому я ищу способ частично автоматизировать этот процесс. Я пытаюсь собрать функцию, которая устанавливает сообщение в no-index, как только я обновляю сообщение как липкое.

Во-первых, я хотел бы знать, какая функция wp запускается, когда сообщение настроено на липкость. Во-вторых, поскольку сайт использует seo-плагин yoast , я хотел бы узнать о hook / filter seo-plugin, который устанавливает сообщение в no-index. Поиск подходящих фильтров или перехватчиков. Я нашел страницу API seo-plugin для yoast, у которой есть несколько фильтров, но я не мог найти ничего полезного для моей цели.

В моих усилиях решить эту проблему я обнаружил отличный ресурс для перехватов wordpress для задания и нашел здесь правильный hook wpseo_saved_postdata . Не стесняйтесь изменять код, если считаете, что это может быть лучше. Пока это работает для меня.

 function set_noidex_when_sticky($post_id){ if ( wp_is_post_revision( $post_id ) ) return; //perform other checks //if(is_sticky($post_id)){ -----> this may work only AFTER the post is set to sticky if (isset($_POST['sticky']) == 'sticky') { //this will work if the post IS BEING SET ticky add_action( 'wpseo_saved_postdata', function() use ( $post_id ) { update_post_meta( $post_id, '_yoast_wpseo_meta-robots-noindex', '1' ); }, 999 ); } } add_action( 'save_post', 'set_noidex_when_sticky' ); 

Только _yoast_wpseo_meta-robots-noindex была мета, которую я планировал изменить. Ниже приведены некоторые мета-ключи yoast, если вы хотите внести какие-либо изменения с помощью кода.

 _yoast_wpseo_google-plus-description _yoast_wpseo_linkdex _yoast_wpseo_opengraph-description _yoast_wpseo_redirect _yoast_wpseo_canonical _yoast_wpseo_sitemap-html-include _yoast_wpseo_sitemap-prio _yoast_wpseo_sitemap-include _yoast_wpseo_meta-robots-adv _yoast_wpseo_meta-robots-nofollow _yoast_wpseo_meta-robots-noindex _yoast_wpseo_metadesc _yoast_wpseo_title в _yoast_wpseo_google-plus-description _yoast_wpseo_linkdex _yoast_wpseo_opengraph-description _yoast_wpseo_redirect _yoast_wpseo_canonical _yoast_wpseo_sitemap-html-include _yoast_wpseo_sitemap-prio _yoast_wpseo_sitemap-include _yoast_wpseo_meta-robots-adv _yoast_wpseo_meta-robots-nofollow _yoast_wpseo_meta-robots-noindex _yoast_wpseo_metadesc _yoast_wpseo_title 

Почему бы вам просто не проверить, является ли сообщение липкой, а затем добавить noindex? Вы можете использовать is_sticky() тег is_sticky() .

Итак, в тэге <head> в файле header.php выполните следующую проверку:

 if ( is_sticky() && is_single() ) { // it's a post and it's sticky, let's add noindex echo '<meta name="robots" content="noindex">'; }