Как получить мета-данные страницы архива?

Вопрос или проблема

Я пытаюсь получить некоторые метаданные из плагина 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 можно воспользоваться следующим способом:

  1. Используйте глобальный объект $wp_query для получения ID архива.
  2. Согласно документации Yoast SEO, метаданные по архивам следует извлекать с помощью функций, предоставляемых самим плагином.

Вот пример кода, который поможет вам получить метаданные для архивной страницы:

if ( function_exists( 'wpseo_archive_meta' ) ) {
    $meta = wpseo_archive_meta(); // Получение мета данных для архивов

    if ( isset($meta['metaDesc']) ) {
        $titleSEO = $meta['metaDesc']; // Мета описание
    } else {
        $titleSEO = ''; // Обработка случая, если мета нет
    }
} else {
    $titleSEO = ''; // Обработка случая, если функция отсутствует
}

Подробные шаги:

  1. Убедитесь, что функция wpseo_archive_meta() доступна. Эта функция возвращает массив метаданных, в том числе описание и заголовок.
  2. При необходимости проверьте результат и выполните соответствующие действия в зависимости от наличия или отсутствия метаданных.

Выводы

Используя подход, описанный выше, вы сможете корректно извлечь метаописание для архивов пользовательского типа записей в WordPress с плагином Yoast SEO. Не забудьте протестировать ваш код на разных типах записей, чтобы убедиться в его надежности. Таким образом, вы получите полное представление о метаданных ваших архивных страниц и сможете улучшить SEO-позиции вашего сайта, оптимизируя контент по правилам поисковых систем.

Оцените материал
Добавить комментарий

Капча загружается...