Реалізація метаданих для архівної сторінки, якщо Yoast SEO не працює

до новин

Під час розробки корпоративного сайту для клієнта я зіткнувся з ситуацією, коли метадані для архівної сторінки кастомного типу записів не відображалися через плагін SEO. У моєму випадку використовувався Yoast SEO, але для архівної сторінки services title та description не виводилися.

Щоб вирішити проблему і при цьому залишити зручне редагування для менеджерів сайту, я реалізував власну систему керування метаданими за допомогою ACF (Advanced Custom Fields).

Такий підхід часто використовується на корпоративних сайтах, де важливо дати клієнту можливість редагувати SEO-поля через адмінку.

Створення SEO полів через ACF

Спочатку я створив Option Page у ACF, де будуть зберігатися SEO-поля для сторінки архіву.

В functions.php додаємо сторінку налаштувань:

Після цього у ACF Field Group створюємо два поля:

  • services_seo_title
  • services_seo_description

Ці поля будуть доступні в адмінці на сторінці налаштувань.

Додавання SEO Title через functions.php

Далі потрібно перехопити фільтр Yoast SEO і підставити наші значення з ACF.

Як працює код

  • Використовується фільтр wpseo_title.
  • Перевіряється, чи є сторінка архівом services.
  • Отримується значення з ACF через get_field.
  • Якщо поле заповнене — воно замінює стандартний SEO title.

Додавання Meta Description

Аналогічно реалізується meta description.

Логіка роботи

  • використовується фільтр wpseo_metadesc
  • перевіряється архівна сторінка
  • підтягується description з ACF
  • якщо поле заповнене — воно використовується як meta description

Результат

У результаті клієнт отримує зручний інтерфейс для редагування SEO-метаданих:

Адмінка WordPress → Theme Settings → Services Page

Тут можна редагувати:

  • SEO Title
  • Meta Description

Переваги такого підходу

  • SEO поля можна редагувати без доступу до коду
  • рішення працює навіть якщо SEO-плагін некоректно обробляє архіви
  • зручно використовувати на корпоративних сайтах
  • легко масштабується для інших архівних сторінок