Как добавить атрибут микроразметки в мета-тег, генерируемый Yoast SEO?

Yoast SEO выводит вот такой мета-тег

<meta name="description" content="Ремонт квартир в санкт-петербурге, ремонт квартир в спб, ремонт квартир под ключ в санкт-петербурге" />

Нужно добавить itemprop="description" в тег, чтобы получилось так:

<meta name="description" itemprop="description" content="Фото ремонта квартир в санкт-петербурге, фото ремонта спб, работы по ремонту квартир в спб" />

Пробовал добавить его, используя фильтр wpseo_metadesc, но он предоставляет доступ только к содержимому атрибута content, но не ко всему тегу.

Каким еще способом можно решить задачу? Спасибо.


Ответы (1 шт):

Автор решения: KAGG Design

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

Ниже рабочий код:

/**
 * Start output buffer before wpseo head.
 */
function my_pre_wpseo_head() {
    ob_start();
}

add_action( 'wpseo_head', 'my_pre_wpseo_head', - PHP_INT_MAX );

/**
 * Modify and output wpseo head.
 */
function my_post_wpseo_head() {
    $head = ob_get_clean();
    // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    echo str_replace( '<meta name="description" ', '<meta name="description" itemprop="description" ', $head );
}

add_action( 'wpseo_head', 'my_post_wpseo_head', PHP_INT_MAX );
→ Ссылка