Вопрос или проблема
Я пытаюсь получить некоторые метаданные из плагина Yoast Seo, настроенные для архивной страницы пользовательского типа записи. Что я делаю не так?
$titleSEO = get_post_meta( '_yoast_wpseo_metadesc', true);
Из справки по функции get_post_meta(),
Извлекает поле метаданных записи для указанного идентификатора записи.
Эта функция предназначена для использования с записями (любого типа), а не с архивами типов записей. Вам нужно углубиться в документацию, предоставленную автором плагина, чтобы узнать, как получить метаданные для архива типа записи.
Ответ или решение
Для получения метаданных для архивной страницы пользовательского типа записей с использованием плагина Yoast SEO существует несколько важных моментов, которые необходимо учесть. Ваша попытка использовать функцию get_post_meta
для извлечения метаописания на архивной странице является правильной в случае одиночных записей, но не подходит для архивов.
Проблема
Функция get_post_meta
предназначена для извлечения метаполей, связанных с конкретным постом, включая разные типы записей. Однако архивные страницы (archive pages), как и страницы категорий, являются не отдельными записями, а дублирующими записями множества других записей. Поэтому вызов get_post_meta
без указания соответствующего идентификатора поста не приведет к желаемому результату.
Решение
Для получения метаданных архивной страницы пользовательского типа записей в Yoast SEO можно воспользоваться следующим способом:
- Используйте глобальный объект
$wp_query
для получения ID архива. - Согласно документации Yoast SEO, метаданные по архивам следует извлекать с помощью функций, предоставляемых самим плагином.
Вот пример кода, который поможет вам получить метаданные для архивной страницы:
if ( function_exists( 'wpseo_archive_meta' ) ) {
$meta = wpseo_archive_meta(); // Получение мета данных для архивов
if ( isset($meta['metaDesc']) ) {
$titleSEO = $meta['metaDesc']; // Мета описание
} else {
$titleSEO = ''; // Обработка случая, если мета нет
}
} else {
$titleSEO = ''; // Обработка случая, если функция отсутствует
}
Подробные шаги:
- Убедитесь, что функция
wpseo_archive_meta()
доступна. Эта функция возвращает массив метаданных, в том числе описание и заголовок. - При необходимости проверьте результат и выполните соответствующие действия в зависимости от наличия или отсутствия метаданных.
Выводы
Используя подход, описанный выше, вы сможете корректно извлечь метаописание для архивов пользовательского типа записей в WordPress с плагином Yoast SEO. Не забудьте протестировать ваш код на разных типах записей, чтобы убедиться в его надежности. Таким образом, вы получите полное представление о метаданных ваших архивных страниц и сможете улучшить SEO-позиции вашего сайта, оптимизируя контент по правилам поисковых систем.