Intereting Posts
Как предотвратить добавление кэшированных сообщений в кеш? Несколько значений postmeta для одной и той же комбинации post_id / meta_key? Как отправить сообщение Via cURL & PHP Конфликт checkbox на моей пользовательской странице настроек плагина Customizer: Категория Выберите Sanitize Исправить WP Redirect Loop Почему этот код приводит к исчезновению панели администратора? Каковы сценарии MediaElement.js для установки в очередь Как установить значения по умолчанию для edit_post_link () в моей теме? Пользовательские значения полей, удаленные при сортировке настраиваемого типа сообщения Использование моего меню WordPress на другой платформе Есть ли способ удалить категории навалом? Перебирать все теги и выходные сообщения в алфавитном списке Получать весь контент на сайте «одна страница» в зависимости от языка Запросить настраиваемое метазначение – просмотр и метаданные даты

action hook wp_head более высокий приоритет, так как все остальные плагины / крючки

Я немного работаю с API WordPress, и я хочу попытаться включить <meta> -tag в свою область моего сайта.

Это мой код ( все работает отлично! ):

 class dmd_noindex_options_page{ function __construct() { add_action( 'wp_head', array( $this, 'set_meta') ); } function set_meta(){ $pages = get_option('dmd_noindex_pages'); $pages_id = explode(',', $pages); for($i = 0; count($pages_id) > $i; $i++){ if(is_page($pages_id[$i])){ echo '<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">'; } } } } new dmd_noindex_options_page; 

Моя проблема:

Я использую WP PlugIn Yoast SEO, и если я взгляну на мой код веб-сайта, я вижу это выше моего <meta> -tag.

 <!-- This site is optimized with the Yoast SEO plugin v2.3.5 - https://yoast.com/wordpress/plugins/seo/ --> <meta name="robots" content="noindex,follow"/> <meta name="description" content="Impressum von EK Immobilien und Kontaktaufnahme"/> <link rel="canonical" href="http://ek.dimadirekt.com/de/impressum/" /> <meta property="og:locale" content="de_DE" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Impressum -" /> <meta property="og:description" content="Impressum von EK Immobilien und Kontaktaufnahme" /> <meta property="og:url" content="http://ek.dimadirekt.com/de/impressum/" /> <meta name="twitter:card" content="summary"/> <meta name="twitter:description" content="Impressum von EK Immobilien und Kontaktaufnahme"/> <meta name="twitter:title" content="Impressum -"/> <!-- / Yoast SEO plugin. --> 

Я не хочу отключать этот Yoast SEO PlugIn! Я пытался установить более высокий приоритет моего add_action, но это не работает.

Например:

 add_action( 'wp_head', array( $this, 'set_meta', 2,1) ); 

Мой вопрос:

Как я могу включить <meta> -tag над <meta> -tags Yoast SEO Plugin? Могу ли я включить мой код в первую очередь плагинов?

Я просто просмотрел класс WPSEO_Frontend и нашел фильтр wpseo_robots для строки содержимого мета-роботов .

Вы можете попробовать что-то вроде:

 add_filter( 'wpseo_robots', function( $content ) { // your logic here ... return $content; } ); 

для переопределения мета-контента роботов из этого плагина.

ps: Вы должны рассмотреть возможность перемещения add_action из конструктора класса.

Включение его выше, вероятно, не так, как вам хочется, поскольку вы, скорее всего, введете «неопределенные функции» на стороне google при столкновении с конфликтующими тегами.

Если вы не хотите, чтобы yoast SEO выводил свои теги, вам нужно будет найти в своем коде, как отключить или переопределить определенные функции.

Но, вероятно, наиболее надежная вещь, которую вы можете сделать, это запретить эти страницы в robots.txt вместо «сражения» со всеми плагинами SEO. Вы можете использовать для этого действие do_robotstxt. что-то вроде (взято здесь https://vip.wordpress.com/documentation/vip-development-tips-tricks/robots-txt/ )

 function my_disallow_directory() { echo "User-agent: *" . PHP_EOL; echo "Disallow: /path/to/your/directory/" . PHP_EOL; } add_action( 'do_robotstxt', 'my_disallow_directory' );