Как скрыть категорию в woocommerce ? hook через function.php


add_filter('woocommerce_product_query_tax_query', 'custom_product_query_tax_query', 10, 2 );
function custom_product_query_tax_query( $tax_query, $query ) {
    if( is_admin() ) return $tax_query;

    // HERE Define your product category SLUGs to be excluded
    $terms = array( 'ukategorisert' ); // SLUGs only

    // Категория в которой нужно скрыть подкатегорию
    $taxonomy = 'product_cat';

    $tax_query[] = array(
        'taxonomy' => $taxonomy,
        'field'    => 'slug', //  категорию которую нужно скрыть Or 'name' or 'term_id'
        'terms'    => $terms,
        'operator' => 'NOT IN', // Excluded
    );

    return $tax_query;
}

 

 

Поделись с друзьями:
Как скрыть категорию в woocommerce ? hook через function.php: 2 комментария
  1. Необходимо скрыть те товарные категории, в которых нет опубликованных товаров. Вернее, вместо них показывать редиректить на 404 страницу.

    Трабла в том, что в магазине огромное количество товаров, которые переведены в draft (они физически не удалены, просто скрыты). А так же более тысячи категории. Сеошник говорит, что они каким то образом попадают в индекс и замусоривают сайт. Удалять эти категории и товары владелец не хочет (он иногда те или иные товары публикует).

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

    Как это реализовать?

    1. allwp:

      1. массово смените видимость всем товарам которые не нужны .. (Личное Видна только администраторам и редакторам.)
      2. сделайте импорт ненужных товаров и категорий и удалите их а после держите это в месте где не потеряете. когда нужно будет — восстановите . (не удобный вариант)
      3. также средствами htaccess можно сделать редиректы на страницу 404 всех необходимых ссылок ЕСЛИ У ВАС структура ссылок ЧПУ (человеко — понятный — урл . т.е подобной этой site/category/post-name)
      если у вас ненужные записи находятся в черновиках — значит ссылка у них должна быть подобной этой ?p=457&preview=true
      средствами htaccess сделать редирект на 404 всех записей которые начинаются на ?p= . Посмотрите что индексируется поисковыми системами — но не забывайте что у вас таких ссылок не должно быть из тех которые нужны. также вы не сможете просматривать черновики.

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

* Все комментарии проходят модерацию