Меняем положение текста описания на страницах WooCommerce
Февраль 14, 2018
Первое с чем сталкивается SEO оптимизатор при настройке Интернет магазина, на базе плагина для WorPress — WooCommerce, это проблема с размещением текстов на страницах товаров и категорий, точнее не с проблемой самого размещения, а с положением текста, дело в том что в категории товаров, описание товаров находится над самими категориями, а для продвижения по ключевым словам этой категории, требуется SEO текст, который должен быть минимум 2000 знаков, а лучше 5000-7000 знаков, и при этом он будет вряд ли интересен нашим покупателям, поэтому его хотелось бы перенести под группы товаров, что бы посетители при попадании на нашу посадочную (лэндинговую) страницу, не искали товары, прокручивая страницу вниз, ведь не все будут это делать, кто то просто закроет сайт, и мы потеряем и потенциального клиента и посетителя сайта, и поисковая система зафиксирует это как отказ, с последующим понижением нашего сайта в выдачи, если таких отказов будет много.
Переносим текст под категории товаров WooCommerce
Категория товаров, это то, куда мы попадаем поссле нажатия на группу товаров, на главной странице магазина, ее адрес имеет вид
1 | your-site.ru/product-category/name-of-category/ |
В сети достаточно много примеров как перенести текст в категории под товары, самый правильный из них это добавление кода в файл function.php вашей дочерней темы, остальные предлагают править файлы самого плагина, этого делать крайне не желательно, если обновите плагин, все изменения пропадут, поэтому правим файл дочерней темы (как сделать дочернюю тему)
Что бы перенести текст описания под товары в категории, добавьте function.php
1 2 | remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 ); |
Но тут есть одно НО, заголовок H2, на странице тоже «уйдет» вниз, а это для продвижения сайта не очень хорошо, пропадает правильная структура страницы.
Универсальное решение — добавим еще одно поле
Лучше, что бы у нас была возможность вставить текст как до категорий с товарами, так и после, для этого есть немного другое решение, путем добавления другого кода в тот же файл function.php
Этот код добавляет в редакторе категории еще одно поле для ввода, а точнее редактор.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | //добавляем текстовый редактор в админку (бэкэнд) add_action( 'product_cat_edit_form_fields', 'wpm_taxonomy_edit_meta_field', 10, 2 ); function wpm_taxonomy_edit_meta_field($term) { $t_id = $term->term_id; $term_meta = get_option( "taxonomy_$t_id" ); $content = $term_meta['custom_term_meta'] ? wp_kses_post( $term_meta['custom_term_meta'] ) : ''; $settings = array( 'textarea_name' => 'term_meta[custom_term_meta]' ); ?> <tr class="form-field"> <th scope="row" valign="top"><label for="term_meta[custom_term_meta]">Этот текст появится после списка товаров</label></th> <td> <?php wp_editor( $content, 'product_cat_details', $settings ); ?> </td> </tr> <?php } add_action( 'edited_product_cat', 'save_taxonomy_custom_meta', 10, 2 ); add_action( 'create_product_cat', 'save_taxonomy_custom_meta', 10, 2 ); function save_taxonomy_custom_meta( $term_id ) { if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = get_option( "taxonomy_$t_id" ); $cat_keys = array_keys( $_POST['term_meta'] ); foreach ( $cat_keys as $key ) { if ( isset ( $_POST['term_meta'][$key] ) ) { $term_meta[$key] = wp_kses_post( stripslashes($_POST['term_meta'][$key]) ); } } update_option( "taxonomy_$t_id", $term_meta ); } } //Добавим вывод из редактора в шаблон на сайт (фронтэнд) add_action( 'woocommerce_after_shop_loop', 'wpm_product_cat_archive_add_meta' ); function wpm_product_cat_archive_add_meta() { $t_id = get_queried_object()->term_id; $term_meta = get_option( "taxonomy_$t_id" ); $term_meta_content = $term_meta['custom_term_meta']; if ( $term_meta_content != '' ) { echo '<div class="woo-sc-box normal rounded full">'; echo apply_filters( 'the_content', $term_meta_content ); echo '</div>'; } } |
После того как добавили этот код в function.php, зайдя в редактор категории, получим вот такую картину
- Текст который выводится до товаров
- Текст который выводится после
Логично что SEO текст мы теперь будем помещать во второе поле, а в первом нужно вводить как минимум заголовок H2
, а возможно и абзац текста с прямым вхождением (что это?) продвигаемого запроса.
Меняем положение текста на главной странице магазина WooCommerce
То что мы сделали в предыдущих пунктах, не повлияет на главную страницу самого магазина, когда мы в настройках woocommerce указываем главную страницу магазина, см. скрин ниже
Плагин автоматически вставляет категории товаров под текс, который имеется на странице, т.е. мы можем указать любую страницу нашего WordPress сайта (при чем она станет автоматически Главной, и будет доступна по адресу your-site.ru
), предварительно разместив на ней SEO текст с ключами, по которым будет продвигаться главная страница нашего Интернет-магазина. Вот она (2)
Что бы текст на главной странице не был над товарами, просто вставим этот шорткод в нужное место главной страницы:
1 | [recent_products per_page="12" columns="4"] |
columns — количество колонок с категориями.
После проделанных изменений, мы имеем адаптированный Интернет-магазин под продвижение, осталось дело за малым, вставить SEO тексты на страницы продвигаемых категорий, и начать статейное продвижение, если конкуренция по нашим запросам высока, если конкурентов не много, то имея на сайте грамотно написанные тексты, сайт сам выйдет в ТОП
Спасибо за познавательную статью
Внедрил все работает.
Но пагинация с товарами из этой категории переноситься ниже текста.
Подскажите как можно пагинацию вернуть на свое место (сразу после товаров)?
А как добавить такое же дополнительное поле в метках товаров?
Ковырять файл, который отвечает за вывод группы товаров по меткам, и туда вставлять этот код. Сам такого не делал, не было необходимости.
Я добавляю ваш код на сайт в function.php дочерней темы. И у меня перестает сайт работать) Я просто
вниз файла вставляю код.
Какую ошибку выдает? Он должен на что то «ругаться», туда и следует «копать», выложите ошибку, попробую помочь.
Здравствуйте! Всё работает, всё супер! Спасибо! Только есть один вопрос, может сможете помочь… На
сайте установлен плагин Yoast SEO, который сканирует тексты на всякие разные сео параметры, а при
написании текста в нижнее поле, он не сканирует его… Может что-то поменять можно чтоб заработало?
Спасибо!
Здравствуйте! Не совсем понял что вы имели в виду, но скорее всего нужно править код Yoast SEO, но скорее всего это не целесообразно, проверяйте сеопараметры вручную, ведь тексты вы пишите для людей, а не для этого плагина )))
Спасибо!!
Это круто!
Отличная штуковина, но есть трабл.
Она вставляется внизу категорий, под товарами, но нижний блок с выбором страницы «1 2 3 4 5» и тд
ПОД текстом. Человеку, который зашел на 1 страницу каталога, нужно пролистать или под текст чтобы
попасть на 2 страницу, либо скроллить наверх и там нажимать на след страницу..
В коде ноль, не подскажете как исправить (или это не баг, а фича?)
Страницы «1 2 3 4 5» выводит какая то функция на PHP, ее можно найти в файлах WordPress и перенести в нужное место документа, или продублировать в нескольких местах.
Добрый день. Все сработало, кроме Шоткода. В чем причина?
Сложно сказать что не так, не видя ваш шарткод
Та же проблема, как исправить?
Какая из них?
Добрый день, спасибо большое за помощь, но возникла такая необходимость, чтобы описание после товаров было только на первой странице. Подскажите как сделать проверку? Заранее благодарю.
Здравствуйте! не могу понять, в чем проблема. Делаю все как у Вас написано, но почему-то у меня первый текст (который должен быть над товаром) появляется под вторым текстом(который идет после товара) а то место, где должен быть первый текст пустует. Помогите пожалуйста, заранее спасибо!
Конечно так не определить причину, но я попрбую предположить что не в тот файл вставляете, он инклюдится внизу, и выводит внизу, нужно смотреть на структу вышей темы
День добрый. Столкнулся с проблемой: название категории выходит только на первой странице списка товаров, при переходе на следующую страницу категории название не отображается. Вставил код add_action( ‘woocommerce_archive_description’, ‘wc_category_description’ ); в functions.php — появилось название категории на всех страницах, но на первой странице оно дублируется. Подскажите, как это исправить?
Темы все разные, каждая тема по совему уникальна, поэтому нет универсального рецепта, ищите в коде какая функция выводит на главной странице название категории, вот эта функция к примеру это делает: single_cat_title()
Добрый день! Возникла такая проблема, в админке появилось соответствующее поле, добавил в него текст, но во фронте текст не отображается. Т.е. под товарами никаккого описания нет. В чем может быть причина? Спасибо.
Добрый день! Возможно что то сделали неправильно в последнем пункте, или же ваша тема имеет какую то особенность, которая не дает выводить этот текст, попробуйте активировать другую, и посмотрите на результат. если появится, то нужно редактировать шаблоны вашей темы, тут без знаний php и функций WordPress уже не обойтись, думаю проще будет выбрать рабочую тему.
Понял, спасибо!