Вывод META-данных для категорий

Долгое время я пользовался записью «МЕТА данные для категорий и тегов» Александра Тодосийчука, но каждый раз искать несоответствия в коде примера стало надоедать.

Поэтому решил сделать обновляемый пост на своём блоге, чтобы каждый раз при обновлении плагина All in One SEO Pack (дальше по тексту — AIOSP) иметь под рукой актуальную информацию о необходимых изменениях.

Данная статья более не актуальна, т.к. перешёл на новый SEO плагин: WordPress SEO by Yoast. Скорее всего материалы инструкции не будут работать с новыми версиями AIOSP.

Так вот, многие знают, что сейчас страницы категорий и меток активно используются для поискового продвижения. Делается это следующим образом: прописываются текстовые описания и заголовки в интерфейсе WordPress и затем выводятся на страницах категорий или меток.

Плагин CategoryTinymce

Для удобства написания текстов в разделе «Рубрики» и «Метки» существует плагин CategoryTinymce. Он добавляет возможность писать текст с помощью удобного редактора TinyMCE:
Вывод META-данных для категорий в WordPress 01

Это всё хорошо, но не стоит забывать и о мета-тегах, а именно выводе корректных title и description для этих страниц.

Плагин Category SEO Meta Tags

Для решения этой задачи существует плагин Category SEO Meta Tags. Устанавливаем и активируем его как обычно, ничего нового вы тут не узнаете.

После этого можем зайти в раздел «Записи» — «Рубрики» вашего блога, выбрать нужную рубрику и увидим следующее:
Вывод META-данных для категорий в WordPress 02

Таким образом, с помощью этого плагина мы добавляем в WordPress возможность заполнять нужные нам значения meta-тегов.

Но есть одно «но» — нужно внести несколько правок в файл плагина AIOSP, чтобы исключить дублирования лишних тегов и активировать работу плагина Category SEO Meta Tags.

На момент написания этой заметки версия AIOSP на моём блоге 2.0.3.1 и все изменения касаются именно её. Если вы читаете эту заметку и версия вашего плагина отличается — напишите в комментариях, обновлю пост в соответствие с новой версией.

Добавляем фильтр для плагина Category SEO Meta Tags

Подключаемся к хостингу через FTP или SSH, заходим в директорию плагина AIOSP: /wp-content/plugins/all-in-one-seo-pack/ и открываем на редактирование файл aioseop_class.php.

Находим строку 1752 и вставляем сразу после неё код:
[php]$title = apply_filters(‘aioseop_category_title’, $title);[/php]

В итоге получится следующий код:
[php]$title = $this->apply_page_title_format( $title );
$title = $this->paged_title( $title );
$title = apply_filters(‘aioseop_category_title’, $title);
$title = apply_filters( ‘aioseop_title_page’, $title );
[/php]

Теперь перемещаемся к строке 1775 и добавляем после неё код:
[php]$title = apply_filters(‘aioseop_title’, $title);[/php]

Получается следующий код:
[php]$title = $this->paged_title( $title );
$title = apply_filters(‘aioseop_title’, $title);
return apply_filters( ‘aioseop_title_single’, $title );[/php]

Я искал эти строки по фразе «paged_title», именно после неё необходимо добавлять наши фильтры.

Убираем дублирование meta-тега description

После выполнения предыдущего пункта, скорее всего у вас на странице будет два meta-тега description, первый от него плагина, второй от AIOSP, выглядеть это будет примерно так:
Вывод META-данных для категорий в WordPress 03

Поисковым системам это не понравится, поэтому давайте исправим.
Задача простая: исключить отображение этого тега в AIOSP для страниц категорий.

Для этого находим строку 1156:
[php]$meta_string .= sprintf( "<meta name=\"description\" content=\"%s\" />\n", $description );[/php] Её быстро найти можно с помощью фразы «meta name».

И обрамляем её условием if:
[php]if (!is_category()) {
$meta_string .= sprintf( "<meta name=\"description\" content=\"%s\" />\n", $description );
}[/php]

Всё, теперь должно работать как нам надо.

Вывод META-данных для категорий: 25 комментариев

  1. Добрый день!
    Скажите пожалуйста, правильно ли я понимаю, что на 2021 в бесплатной версии плагина AIOSEO не выводятся meta description для рубрик по умолчанию (только в платной версии)?

  2. У меня SEO реализовано посредством All In One SEO Pack, для того чтобы добавить метатеги для тегов подойдёт WordPress SEO by Yoast я так понимаю?

    1. WordPress SEO by Yoast — это отдельный мощный плагин для seo. Он не костыль или аддонс для All In One SEO Pack.
      Вам нужно будет перерасти все настройки seo в новый плагин

  3. Все работает кроме title(берётся из названия категории), повторение дикскрипшинов то же убрал, не подскажете в чем может быть проблема?

    1. Нет, не подскажу, Антон. Я отказался от использования это связки плагинов в пользу WordPress SEO by Yoast, там всё это работает «из коробки»ю

    1. Здравствуйте!
      Я отказался от плагина в пользу WordPress SEO by Yoast, поддерживать AIOSP больше не планирую, занимает слишком много времени. На блоге есть информация о безболезненном переходе на новый плагин.

    1. Добрый день, Валерий.
      Если вы всё делали по инструкции, то другого варианта быть не может — всё работает корректно. На сегодняшний день я отказался от использования плагина AIOSP в пользу плагина WordPress SEO by Yoast, в нём вся заявленная функциональность есть из коробки. Попробуйте поставить его, это решение гораздо легче и удобнее.

      1. gruz0 привет!
        У меня версия 2.0.3.1 — всё сделал, как написано.
        мета вставились, а title берёт из названия рубрики всё равно. Не подскажете, какой кусочек кода и в каком файле теперь за него отвечает?
        И в чём может быть ещё загвоздка — от шаблона не зависит?
        Плагин CategoryTinymce не устанавливал — текст другим способом вывожу.

    1. Я начал было разбираться в новой версии модуля, но потом нашел более крутой плагин и вообще забил на эту связку.

      1. Присматривался к нему, но по какой-то причине отказался, не помню уже. Он умеет мета для категорий и меток из коробки?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Согласие на обработку персональных данных © 2024 Alexander Kadyrov
Яндекс.Метрика