WPschool.by
Меню

Вывод своего заголовка H1 в категориях товаров WooCommerce

5
(3)

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

Для вывода своих, произвольных, кастомных заголовков категорий H1, в файле темы function.php необходимо добавить код:

/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 1**/
add_action("product_cat_edit_form_fields", 'itcom_meta_product_cat');
function itcom_meta_product_cat($term){
   ?>
       <tr class="form-field">
              <th scope="row" valign="top"><label>Заголовок h1</label></th>
              <td>
                     <input type="text" name="itcom[h1]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'h1', 1 ) ) ?>"><br />
                     <p class="description">Заголовок страницы</p>
             </td>
      </tr>
<?php
}
/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 1**/

/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 2**/
add_action('edited_product_cat', 'itcom_save_meta_product_cat');
add_action('create_product_cat', 'itcom_save_meta_product_cat');
function itcom_save_meta_product_cat($term_id){
if (!isset($_POST['itcom']))
return;
$itcom = array_map('trim', $_POST['itcom']);
foreach($itcom as $key => $value){
if(empty($value)){
delete_term_meta($term_id, $key);
continue;
}
update_term_meta($term_id, $key, $value);
}
return $term_id;
}
/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 2**/

/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 3**/
if(strpos($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], '/product-category/'))
add_filter ( 'woocommerce_show_page_title' , 'itcom_woocommerce_product_cat_h1' , 10 , 2 );
function itcom_product_cat_h1(){
    $pch = get_term_meta (get_queried_object()->term_id, 'h1', true);
    echo '<h1 class="woocommerce-products-header__title page-title">'.$pch.'</h1>';
    if(empty($pch)){
       echo '<h1 class="woocommerce-products-header__title page-title">'.get_queried_object()->name.'</h1>';
    }
}
function itcom_woocommerce_product_cat_h1(){
    return  itcom_product_cat_h1($pch);    
}
/**Вывод своего заголовка у категорий товаров Woocommerce часть кода 3**/

Данный код добавит в настройки каждой категории дополнительное поле “Заголовок h1”.

Поставьте свою оценку

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 3

Оценок пока нет. Поставьте оценку первым.

4 ответа

  1. Спасибо. Всё получилось! Это действительно работает и очень полезно для SEO.

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

  3. Решил данный косяк вот таким изменением в нижней части кода

    echo ”;
    echo $pch;
    if(empty($pch)){
    echo get_queried_object()->name;
    }
    echo ”;
    }

  4. Здравствуйте, Денис!
    Отличное решение важной сео-задачи, из всей информации, что есть по этой тематике в интернете мне помогло оно, хотя и возник вопрос:
    В популярной теме Kadence заголовок выводится в блоке:

    Заголовок

    При добавлении вашего кода он остается на своем месте (тема позволяет отключить его вывод).
    А новый, кастомный, расширенный H1 выводится ниже, на странице.
    Возможно это исправить и вывести расширенный вместо дефолтного?

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

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

Капча загружается...

Категории блога

Сохраните себе в заметки:
VK
Facebook
Telegram
OK
Twitter
Печать
Наши контакты: