Как вывести заголовок товара woocommerce

КАК ДОБАВИТЬ TITLE, DESCRIPTION, KEYWORDS В КАТЕГОРИИ ТОВАРОВ НА WOOCOMMERCE

Обновлено: 16 июня 2020

Не секрет, что во многом успешное продвижение сайта, интернет-магазина зависит от правильно организованной семантики и лояльности к поисковикам. От того, как составлены title (тайтл), description (дискрипшион) и keywords (кейвордс), зависит и ранжирование сайта поисковыми системами, и его посещаемость. Для того, чтобы их прописывать в статьях, записях и товарах можно использовать SEO-плагины: WP SEO by Yoast, All In One SEO Pack и др., в них функция вывода мета-полей предусмотрена. Однако, в категориях товара такой возможности нет.

Как вывести мета-поля для: заголовок (title), краткое описание (description) и ключевые слова (keywords) на странице редактирования категории товара в интернет-магазине на Вордпресс (WordPress) с плагином Вукоммерсе (Woocommerce)? Я использую очень простой и надёжный вариант от Виталия Кириллова (SEO Маяк) без применения готовых плагинов, которые значительно грузят сайт и понижают скорость, которая тоже очень важна!

Как вывести мета-поля на странице редактирования категории товара

В данном случае редактировать надо файл functions.php, который находится в папке с вашей темой. Открыть его можно из консоли сайта: ВНЕШНИЙ ВИД — РЕДАКТИРОВАНИЕ. Однако, самый надёжный и удобный вариант: с помощью файлового менеджера FileZilla Client и блокнота для редактирования Notepad++.

Читайте также:  Как вывести въевшиеся пятна ржавчины с одежды

Для вывода мета-полей на самой странице редактирования категорий товаров используем хук product_cat_edit_form_fields. В самом низу файла functions.php перед закрывающим тегом ?> вставляем следующий код:

Таким образом мы вывели мета поля на страницу редактирования категорий товаров в интернет-магазине на Woocommerce. На картинке внизу видно, как они выглядят:

Ну, и последнее что нужно сделать — это вставить функцию, которая будет сохранять все данные в MySQL (Базе данных). Добавляем ещё один код туда же:

Не забудьте заменить мета тег qner на свой — текст замены выделен красным цветом.

Обратите внимание, что одновременно с тайтл, дискрипшион и кейвордс выводится поле для написания заголовка h1. Не стала его удалять из кода, может кому-то он пригодится. Тем не менее, с точки зрения SEO-продвижения на сайте не рекомендуется более четырёх заголовков со свойствами «h1».

Источник

SEO Маяк

Блог Виталия Кириллова | Все о создании,
продвижении сайтов и заработке в интернете

Создание и продвижение сайтов, заработок в интернете

Title, description, keywords и h1 для категорий товаров Woocommerce

Всем привет! Сегодня на seo-ayak.com по многочисленным просьбам читателей я начну разбирать плагин Woocommerce.

Не люблю я плагины, тем более те, что свои таблицы в БД создают, но Woocommerce, конечно, исключение, так как это не обычный плагин, а целый отдельный движок, со своим кодексом.

Плагин очень популярен и думаю вполне заслуженно, но как во всех движках в нем есть много недоработок, которые мы и будем пытаться исправить.

У меня нет действующего интернет-магазина на Woocommerce, но я его создал на локальном сервере (как создать локальный сервер) и теперь буду над ним издеваться в свое удовольствие.

Сегодня, так сказать, по горячим следам, я расскажу как вывести отдельные: title, description, keywords и h1 для категорий товаров Woocommerce. Поехали!

Мета-поля на странице редактирования категории Woocommerce

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

Для вывода мета-полей на странице редактирования категорий товаров мы будем использовать хук product_cat_edit_form_fields .

Открываем для редактирования файл functions.php, что находится в папке с темой и вставляем такую функцию.

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

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

Теперь нам надо сохранить данные в БД. Для это вставляем еще одну функцию:

Эта функция тоже отличается только названием и хуками, здесь также можно не создавать лишнего, а просто подключить хуки edited_product_cat и create_product_cat .

На этом сходства заканчиваются. Идем дальше.

Title для категорий товаров Woocommerce

Также, как в случаи со стандартными категориями WordPress, мы просто подменим title Woocommerce на свой.

В Woocommerce, впрочем как и в WordPress, для вывода title на страницах категорий товаров используется функция single_term_title() , в которой предусмотрен одноименный хук single_term_title , его-то мы и будем использовать для вывода своего title.

Вставляем ниже в файл functions.php:

Если поле title по каким-то причинам окажется незаполненным, то заголовок title будет выводится по умолчанию, т.е. из названия категории.

Заголовок h1 для категорий товаров Woocommerce

Категории Woocommerce обиженны ничуть не меньше стандартных категорий, может за исключением возможности вывода изображения, мало того, что такие страницы сложно продвигать, это еще неправильно с коммерческой точки зрения.

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

Сегодня мы исправим эту ситуацию. Функция:

Здесь также предусмотрен вывод заголовка h1 из названия категории товаров в случаи, если поле h1 по каким-то причинам окажется пустым.

В Woocommerce есть хук woocommerce_show_page_title , который срабатывает перед выводом заголовка из названия на экран и если это хук задействован, то заголовок из названия уже браться не будет, а будет выводится наш h1.

Очень удобный хук, в сборке WordPress такого нет.

В функции для h1 я задал css-классы, взятые из самого плагина, но если есть необходимость, можно вписать свои.

Отделенный description для категорий Woocommerce

Тут я не буду вдаваться в подробности, скажу лишь, что, если поле «Краткое описание» не будет заполнено, то description будет выведен по умолчанию, т.е. взят из описания категории.

У нас осталось вывести ключевые слова. Кто-то может сказать, что поле keywords можно и не делать и отчасти они правы, но только отчасти, так как Яндекс и другие менее значительные поисковики возможно, повторяю, возможно, учитывают ключевые слова, если они составлены по правилам.

Поэтому и нам не стоит пренебрегать keywords.

Keywords для категорий товаров Woocommerce

Функция простая и расписывать тут нечего:

На этом у меня все. Если что-то не получается, пишите в комментариях, постараюсь помочь и подписывайтесь на обновления блога , будет интересно!

Дополнение

После внедрения вышеописанного функционала, многие веб-мастера сетовали, что на стартовой странице магазина в заголовок h1 выводиться слово «Product» (по умолчанию «Магазин»).
Причина: просто отключается перевод.
Я написал функцию, в тело которой можно вписать любой текст заголовка (Строка №3):

С уважением, Виталий Кириллов

Статьи по теме:

Интересное на блоге

Комментарии: 76

Виталий, зря вы плагины не любите. Многие приносят много пользы и никакого торможения, как некоторые говорят 😀

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

Здравствуйте, Виталий. Давно пора разобрать Woocommerce WordPress. Буду следить за обновлениями статей. Кстати, не пробовали Open Server вместо Denver? Намного интересней сервак, и обновляется по мере выхода PHP версий и прочего. Альтернатива данным кодам Yoast Woocommercе по моему?

Здравствуйте Егор!
Насколько я знаю h1 Yoast Woocommercе не выводит.
Что касается Open Server, просто не пробовал, возможно стоит.

Добрый день!
Почему то не получает имя категории для h1. Если в новом поле заполненно то всё хорошо выводит. А если поле H1 не заполненно то должен брать из заголовка страницы. Чего не происходит.

Здравствуйте, Дмитрий!
Функцию поправил, проверьте.

Подскажите, а есть ли аналогичное решение для товаров непосредственно?

Я думаю можно попробовать, будет время поэкспериментирую.

Добавление скриптов в фанкшн пхп не двёт результатов? С чем может быть связано?

WordPress 4.4.14 с темой оформления Nova WP.
WooCommerce Версия 2.5.5
В системе установлен All in One SEO Pack.

Скорее всего связано с темой. Я уже сталкивался с такими проблемами.
Попробуйте вставить код в один из подключенных к functions.php файлов.

Не работает вывод h1. Вставил в functions.php но ничего в админке не появилось

Функцию поправил, проверьте.

Все также и не работает метод с H1(если внедрять только код связанный с ним)
Посмотрел в исходном коде страницы, поискал H1 — там, название категории товара просто уходит за сам тег. А при добавлении еще одного H1 в админке ручным способом — будет просто два тега H1

Возможно есть альтернативный способ решения проблемы?
Необходимо просто внедрять вручную H1 тег для категории, чтобы лучше индексировались страницы

Функцию вывода h1 поправил.
У меня все ровно отображается.
Вроде все протестил.

Вроде все вставил, а выдает такую ошибку

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘mayak_meta_product_cat ‘ not found or invalid function name in /home/rbsa/mirstankov.com/www/wp-includes/class-wp-hook.php on line 288

Виталий, здравствуйте! Текст внизу категорий у меня стоит, но не могли бы Вы помочь с выводом текста в атрибутах. Чтобы от тоже был снизу. А то описания производителя и других атрибутов хорошо двигают сайт, но мешают посетителям. napitkistore.ru/proizvoditel/mountain_dew/

Спасибо, это то, что я искал! НО как сделать так, чтобы если поля не заполнены, то не выводились пустые метатеги, типа ? Просто вдруг это может повлиять на индексацию страницы, которая уже проиндексирована без метатегов?

Внес изменения в functions.php. К редактировании категорий поля для ввода мета-поля НЕ появились, но появилось следующее сообщение:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘mayak_meta_product_cat ‘ not found or invalid function name in /home/elettrico/public_html/wp-includes/class-wp-hook.php on line 300

Подскажите, как поправить. Спасибо.

Вы функцию полностью скопировали?

да весь код, а есть значение куда вставлять? я попробовал в самый низ (после всего кода) и в самый верх сразу после « »>
Не более 60 знаков, включая пробелы

Краткое описание (description)

»>
Краткое описание (description)

»>
Ключевые слова (keywords)

term_id;
return get_term_meta ($pci, ‘title’, true);
>
function mayak_poduct_cat_title($pct) <
if(empty($pct)) <
$pct = get_queried_object()->name;
>
return $pct;
>

add_filter ( ‘woocommerce_show_page_title’ , ‘mayak_woocommerce_product_cat_h1’ , 10 , 2 );
function mayak_product_cat_h1() <
$pch = get_term_meta (get_queried_object()->term_id, ‘h1’, true);
echo ».$pch.»;
if(empty($pch)) <
echo get_queried_object()->name;;
>
>
function mayak_woocommerce_product_cat_h1() <
return mayak_product_cat_h1($pch);
>;

/* Вывод description для категорий товаров */
add_action(‘wp_head’, ‘mayak_description_product_cat’, 1, 1);
function mayak_description_product_cat() <
if(is_product_category()) <
$pcd = get_term_meta (get_queried_object()->term_id, ‘description’, true);
if(!empty($pcd)) <
$meta = ».»\n»;
>
else <
$pcd = wp_filter_nohtml_kses(substr(category_description(), 0, 280));
$meta = ».»\n»;
>
echo $meta;
>
>

/* Вывод keywords для категорий товаров */
add_action(‘wp_head’, ‘mayak_keywords_product_cat’, 1, 1);
function mayak_keywords_product_cat() <
if(is_product_category()) <
$pck = get_term_meta (get_queried_object()->term_id, ‘keywords’, true );
$aut = ».»\n»;
>
echo $aut;
>

Далее начинается изначальный код файла:

// Define theme name
define( …

Ну вот ошибку вижу:

Два раза точка с запятой прописана.

Спасибо большое за ответ, исправил «;;» на «;», но все равно на странице категории не появились поля для мета данных и давет туже ошибку Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘mayak_meta_product_cat ‘ not found or invalid function name in /home/elettrico/public_html/wp-includes/class-wp-hook.php on line 300

(P.S. вы используете какую-то программу для поиска ошибок кода (могли бы поделиться названием?) или просто опыт и наметанный глаз позволяет найти ошибки кода?)

Сейчас код functions.php выглядит так:

»>
Не более 60 знаков, включая пробелы

Краткое описание (description)

»>
Краткое описание (description)

»>
Ключевые слова (keywords)

term_id;
return get_term_meta ($pci, ‘title’, true);
>
function mayak_poduct_cat_title($pct) <
if(empty($pct)) <
$pct = get_queried_object()->name;
>
return $pct;
>

add_filter ( ‘woocommerce_show_page_title’ , ‘mayak_woocommerce_product_cat_h1’ , 10 , 2 );
function mayak_product_cat_h1() <
$pch = get_term_meta (get_queried_object()->term_id, ‘h1’, true);
echo ».$pch.»;
if(empty($pch)) <
echo get_queried_object()->name;
>
>
function mayak_woocommerce_product_cat_h1() <
return mayak_product_cat_h1($pch);
>;

/* Вывод description для категорий товаров */
add_action(‘wp_head’, ‘mayak_description_product_cat’, 1, 1);
function mayak_description_product_cat() <
if(is_product_category()) <
$pcd = get_term_meta (get_queried_object()->term_id, ‘description’, true);
if(!empty($pcd)) <
$meta = ».»\n»;
>
else <
$pcd = wp_filter_nohtml_kses(substr(category_description(), 0, 280));
$meta = ».»\n»;
>
echo $meta;
>
>

/* Вывод keywords для категорий товаров */
add_action(‘wp_head’, ‘mayak_keywords_product_cat’, 1, 1);
function mayak_keywords_product_cat() <
if(is_product_category()) <
$pck = get_term_meta (get_queried_object()->term_id, ‘keywords’, true );
$aut = ».»\n»;
>
echo $aut;
>

Источник

Оцените статью