• Всем привет, для вывода всех товаров в HTML карте сайта, было найдено вот такое решение

    <ul>
    <?php
    $terms = get_terms( 'wpsc_product_category', 'orderby=name&');
    
    foreach ($terms as $term) {
    
      echo '<li><a href="' . get_term_link( $term ) . '"><h3>'.$term->name.'</h3></a>';
    echo '<ul>';
    
    $args = array(
    'post_type' => 'wpsc-product',
    'posts_per_page' => 400,
    'tax_query' => array( array( 'taxonomy' => 'wpsc_product_category', 'field' => 'slug', 'terms' => $term->slug ) ) );
    $new = new WP_Query($args);
    while ($new->have_posts()) {
    $new->the_post();
    echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    }
    echo "</ul>";
    echo "</li>";
    } ?>
    </ul>

    Нужно исключить категорию товаров с id 62. Пробовал разные подходы, не выходит. Буду очень благодарен за подсказку!

    get_terms( ‘wpsc_product_category’, ‘orderby=name&’, ‘exclude=62’ — не реагирует

    ‘exclude_wpsc_product_category’ => array(62), или просто 62 или ’62’
    ‘exclude_product_category’ => array(62), или просто 62 или ’62’
    ‘exclude’ => array(62), или просто 62 или ’62’
    так же не реагирует

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • /* Exclude Category from Shop*/
    
    add_filter( 'get_terms', 'get_subcategory_terms', 10, 3 );
    
    function get_subcategory_terms( $terms, $taxonomies, $args ) {
    
      $new_terms = array();
    
      // if a product category and on the shop page
      if ( in_array( 'product_cat', $taxonomies ) && ! is_admin() && is_shop() ) {
    
        foreach ( $terms as $key => $term ) {
    
          if ( ! in_array( $term->slug, array( 'project1', 'susan' ) ) ) {
            $new_terms[] = $term;
          }
    
        }
    
        $terms = $new_terms;
      }
    
      return $terms;
    }

    это не совсем то, но смысл должен быть понятен.

    Смысл понятен, но не увидел атрибута который указывает на исключение категории по id. Насколько я понимаю, должен быть некий exclude

    if ( ! in_array( $term->slug, array( 'project1', 'susan' ) ) ) {
            $new_terms[] = $term;
          }

    вот тут проверка на то, какие рубрики не должны попадать в общий список.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «HTML-карта сайта для товаров WP e-Commerce» закрыта для новых ответов.