• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Свой TITLE страницы у категорий, меток и таксономий товаров

Image CMS

mulch

Форумчанин
#1
Коллеги, подскажите. Не могу найти файл, отвечающий за Title страницы категорий, меток и таксономий именно товаров, а не простых страниц WP.
Для простых страниц редактируется это в файле wp-includes\general-template.php функция function wp_title(...). Здесь можно для каждого типа страниц и их параметров (название, ID и т.п. накодить уникальный Title).
А для товаров аналогичный файл ну никак не могу найти! :(
Подсобите, плиз.
P.S. Тема StoreFront, SEO плагин - AOISP (всегда последний). Перестраиваться на Yoast как то не хочется из-за этих мелочей.
 

artemkomarov

Специалист
Местный
#2

mulch

Форумчанин
#3
Спасибо за наводку, много узнал нового интересного, но не по этой теме.
Вопрос к сожалению не решило, т.к. сейчас уже в интернет-магазине выводятся страницы товаров, категорий товаров и т.п., а вот какой файл за это отвечает - неясно.
В файле wp-includes\general-template.php в т.ч. в функции function wp_title(...) нет никаких проверок на is_woocommerce(), is_product(), is_product_category() и т.п., а эти разделы на экран то как то выводятся.
Попробовал по аналогии с уже там имеющимися проверками добавить свои - эффекта полный 0.
Вот ищу именно те строки в том файле, которые отвечают за формирование в $title и вывод в тег <title> для WooCommerce.
 

artemkomarov

Специалист
Местный
#4
По этой.

Вот ищу именно те строки в том файле, которые отвечают за формирование в $title и вывод в тег <title> для WooCommerce.
wrong! ;)

Редактирование файлов это последнее дело. Если есть actions и filters с помощью которых можно менять все что угодно, используйте их. К примеру добавив этот код в functions.php вы измените title только для конечного товара.

Код:
// добавим наш текст в тайтл только для товаров
add_filter('pre_get_document_title', 'change_the_product_title');
function change_the_product_title() {
    $name = single_post_title( '', false );
    if (is_product()) {
        $title = 'Купить недорого ' . $name . ' в Москве';
    }
    return $title;
}
 

mulch

Форумчанин
#5
Спасибо огромное за подсказку! Осознание системы WP улучшилось, обязательно поизучаю поглубже - знать бы только хорошие источники.
Тем не менее убедился, что ничего не получалось, даже с этой прекрасной вставочкой, т.к. формирование Title перехватывается плагином All in One Seo Pack, а именно в настройках галочка "Перезаписывать заголовки:". Пока решил подстроится через этот плагин, разобрался - там есть возможность задавать формат TITLE различных типов страниц, исключать некоторые из обработки.
Вообще проблема вскрылась, когда в код выше добавил echo ($name) и увидел на разных страницах несовпадение надписи и заголовка страницы.
А вообще какие механизмы есть контроля реализации PHP пошагово? По аналогии с JS? Я новичок, заранее сорри за такие вопросы...
 

quosenk

Новичок
#6
Код:
// добавим наш текст в тайтл только для товаров
add_filter('pre_get_document_title', 'change_the_product_title');
function change_the_product_title() {
    $name = single_post_title( '', false );
    if (is_product()) {
        $title = 'Купить недорого ' . $name . ' в Москве';
    }
    return $title;
}
Очень помог Ваш код! Еще один вопрос, как в title запихнуть sku товара?
 
Сверху Снизу