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

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 );
  }
}

Данный код надо поместить в файл вашего шаблона functions.php
После этого у нас в категориях товаров появится текстовый редактор.
Screenshot_4

Теперь все это дело надо вывести в шаблон.

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>';
  }
}

Данный код надо поместить в файл вашего шаблона functions.php
Теперь в каждой категории будет выводится ваш текст, банер, да все что угодно.
Всем приятной работы!!!

  1. Александр

    Спасибо помогло но! Выводится на всех страницах. Как сделать, что бы выводилось только на первой?

  2. Марат

    Привет, есть отличный плагин брендов Perfect WooCommerce Brands. так вот, когда кликаеш на бренд, открывается страница бренда с товарами относящимся к нему, ну а вот описание для этого бренда сделать никак нельзя. Может тоже какой нибудь код можно придумать?

  3. Александр

    а как вывести в самом верху на странице категории большое спасибо если поможете

  4. Роман

    Спасибо огромное

  5. Тарас

    как вывести допросными описание в метках товаров тоже ?

  6. Святослав

    Спасибо большое за скрипт! Скажите, а как можно сделать то-же самое, но для таксономий товаров?

1 2 3 4 5

© 2012–2017 / wp-city.ru / Авторские шаблоны WORDPRESS / Создание сайтов