Задать вопрос
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Все, кажется осенило =D
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, привет! и снова нужны мудрые мысли мастера)) не получается проверить если я на странице товара и товар относится хотя бы к одной категории Женское чтобы меню подсвечивалось женское, у меня почему то мужское начинает светиться и женское тоже =(
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Привет, короче я так поглядел чо к чему))

    код

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'WOM' == $item->title && is_product_category( 'sumki' ) ) {
             $classes[] = 'current-menu-item';
        }
    
        return $classes;
    }


    работает, если ПУНКТ меню называется WOM, не название всего меню в WP а именно пункт меню)))
    я искал как быть с названием меню, но и с пунктом тоже хорошо) у меня то как было
    5e3dd7d3ef21c074426374.jpeg

    WOM название всего меню было, название по самой cms wp а вот отображаемый пункт в меню был Женское и вот тогде если вставить if ( 'Женское' == $item->title все будет рабоать и работает.

    Но вот какой вопрос Пычев Анатолий , при выборе категории он подсвечивает меню, а когда входим в товар, которому присвоена категория Женское, уже не показывает. Как сделать чтобы проверялось если у ЛЮБОГО товара есть категория Женское (если он входит в данную категорию) то меню становится активным, если зайти на сам товар.
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Доброй ночи! Огромное спасибо за терпение и за помощь, еще раз подумаем что к чему, как найдется решение то дам знать, все же посмотрите завтра то что я Вам прислал последнее, и поглядите как у цума что я имею в виду
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, плагин стоит но мне надо сделать на основе двух пунктов меню которые не используют МегаМеню

    Вот смотрите как у ЦУМа https://www.tsum.ru/

    есть два пункта меню Женское и Мужское
    когда мы выбираем например Женское у нас меню показывает чисто для женщин, с этим решено плагином, там можно задать какое меню где будет отображаться, НО! в плагине нельзя выбрать произвольный пункт там выбирается все меню, в моем случае WOM в котором лишь один пункт Женское
    Когда мы выбираем категорию товара Сумки (sumki), нужно чтобы в этом меню WOM и подсвечивалась Женское А так как по коду у меня

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'WOM' == $item->title && is_product_category( 'sumki' ) ) {
             $classes[] = 'current-menu-item';
        }
    
        return $classes;
    }
    Выбрано меню WOM значит и все пункты в нем должны стать активными так же ? А там всего и есть один пункт Женское он выведен в виджетах в топ баре (виджет произвольное меню где выбрано меню WOM в котором только один пункт) точно так же есть и MAN название меню где есть тоже только один пункт Мужское.

    Зайдите пожалуйста на сайт ЦУМа и поймете.
    Когда мы находимся внутри женских товаров и категорий то активный остается пункт меню Женское
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, сейчас погляжу)) Анатолий у Вас ссылки в верху это произвольные ссылки меню?
    мне же надо по названию меню именно, как на анимации выше. Мне надо что бы это было применимо к меню WOM (название меню) а внутри него пункт меню Женское вот мне и надо чтобы WOM стал активным а так как там всего один пункт меню Женское, он и булет подсвечен.

    В вашем случае меню как то тоже называет, допустим (GLAVNOE) а вот в нем уже сами пункты меню у вас
    Блог Толстовки Футболки Мой Акк
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Огромное спасибо Анатолий за терпение и ответы)) по поводу
    Это говорит о том, что для пунктов меню созданных с помощью блока "Произвольная ссылка", а я предполагаю, чт оВы так и сделали, надо использовать другой член класса
    Пункты меню созданы не произвольной ссылкой.
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    вот принцип работы меню https://www.tsum.ru/
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Владимир Брумер, еще раз спасибо Владимир! Удачного дня!пока будем искать решение))чую я придется запилить ролик чтобы точно было ясно))
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий,

    Вот прописал так, WOM- так называется меню в wp в нем лишь один пункт Женское
    woman- так называется категория товара
    и когда я выбираю категорию товара woman пункт меню Женское не подсвечен остается, класс current-menu-item не присваивается

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'WOM' == $item->title && is_product_category( 'woman' ) ) {
             $classes[] = 'current-menu-item';
        }
    
        return $classes;
    }
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Анатолий спасибо что тоже отвечаете, дело в том что как и было оговорено выше Is_category обычная таксономія wp И да, все работает. Но речь идет о is_product_category это я выше статью вам показал там по другому нужно wp показать что мы хотим. что это не категория не рубрика простая, а категория именно товара как на скринах у Владимир Брумер . И делать активным нужно не категорию в которой я, а пункт обычного меню.
    То что вы прислали

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'Красная' == $item->title && is_category( 'krasnaya' ) ) {
             $classes[] = 'red-menu-item';
        }
        if ( 'Зеленая' == $item->title && is_category( 'zelenaya' ) ) {
             $classes[] = 'green-menu-item';
        }
        return $classes;
    }


    Работает и проверять не надо)
    а при использовании вот такого варианта

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( is_product_category( 'cat1' ) ) {
             $classes[] = 'current-menu-item';
        }
        return $classes;
    }


    Все срабатывает, НО! Активными становятся всееее пункты меню что есть на сайте! а мне надо конкретное меню, и при использовании уже такого подхода что ниже

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'Красная' == $item->title && is_product_category( 'krasnaya' ) ) {
             $classes[] = 'red-menu-item';
        }
        if ( 'Зеленая' == $item->title && is_product_category( 'zelenaya' ) ) {
             $classes[] = 'green-menu-item';
        }
        return $classes;
    }


    НИЧЕГО не происходит! вот и вопрос где что не так то
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Владимир, у меня в Woocommerce в КАТЕГОРИИ ТОВАРА есть: Рубашки, Туфли, Сумки

    на главной странице обычное меню WP из пунктов: Главная Женское Мужское Контакты
    если я выберу товар в каталоге у которого категория товара: Сумки
    мне надо чтобы активно было меню Главная Женское Мужское Контакты
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Владимир Брумер, Владимир спасибо что отвечаешь) --жму справа а слева соответствующая категория выделяется

    мне не категорию выделять надо) говорю же, ПУНКТ МЕНЮ)
    Вот на странице есть пункт меню ГЛАВНАЯ
    Вот надо заставить чтобы это главная была активная (подсвечивалась) если ты выбрал категорию как у тебя: Прочее
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Так вы то css прописываете я то говорю про добавление котого того что выше в functions.php темы, просто таких категорий много может быть. Можно скрины если не трудно.
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Владимир Брумер, Владимир, у меня в Woocommerce в КАТЕГОРИИ ТОВАРА есть: Рубашки, Туфли, Сумки

    на главной странице обычное меню WP из пунктов: Главная Женское Мужское Контакты
    если я выберу товар в каталоге у которого категория товара: Сумки
    мне надо чтобы активно было меню Главная Женское Мужское Контакты

    вот и код о котором говорил вышел не работает потому что тут не is_category (это относится к категориям WP к рубрикам) а у меня is_product_category это относится к категориям WooCommerce, а если посмотреть выше на статью то получается что is_product_category нужно представлять как таксономию Wp чтобы он понял что хотят сделать :

    add_filter( 'nav_menu_css_class', 'add_custom_class', 10, 2 );
    
    function add_custom_class( $classes, $item )  {
        if ( 'Красная' == $item->title && is_product_category( 'krasnaya' ) ) {
             $classes[] = 'red-menu-item';
        }
        if ( 'Зеленая' == $item->title && is_product_category( 'zelenaya' ) ) {
             $classes[] = 'green-menu-item';
        }
        return $classes;
    }
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Владимир Брумер, Никто не слышит видимо)))) ЭТО НЕ РУБРИКА!!!! ЭТО НЕ КАТЕГОРИЯ WP не category не is_category.

    ЭТО КАТЕГОРИЯ WOOCOMMERCE! категория товара , по другому (product_category) не обычная таксономия WP. Попробуйте поставить woocommerce и добавить категорию ТОВАРА! не МЕНЮ НЕ РУБРИКА!
  • Активный пункт меню категории Wordpress?

    Sam1ive
    @Sam1ive Автор вопроса
    Пычев Анатолий, Может дело то вот в чем? оригинальная статья

    Вы пытаетесь заставить его работать с in_category()функцией, но ничего не происходит? Ну в этом уроке вы узнаете, почему.

    На самом деле это очень распространенная ошибка, и я тоже делал это раньше.

    Во-первых, давайте начнем с того, что продукты в WooCommerce являются пользовательским типом product записи, а категории продуктов-пользовательской таксономией product_cat. Когда вы работаете с пользовательскими таксономиями, вы используете функции для категорий / тегов или для таксономий? Вот и все.

    По сравнению с is_product_category (), WooCommerce здесь не имеет собственных условных тегов, поэтому мы должны использовать условные теги WordPress по умолчанию:

    has_term ( $terms, 'product_cat', $post );
    $terms
    (string / integer / array) - передача имен категорий продуктов / слизней или идентификаторов здесь можно передать несколько значений в виде массива.
    Второй параметр-это имя таксономии, но теперь мы будем использовать его для категорий продуктов, поэтому установите product_catего здесь. Если вы хотите использовать его для тегов продукта, просто замените его product_tag.
    $post
    (integer / object) - идентификатор продукта или объект WP_Post здесь. Если это не предусмотрено, по умолчанию используется текущий продукт в цикле
    Теперь давайте посмотрим на пару примеров:

    if (has_term (  4, 'product_cat' ) )  {
    	//сделайте что-нибудь, если текущий продукт в цикле находится в категории продукта с идентификатором 4
    }

    if (has_term ( array ( 'sneakers', 'backpacks' ),' product_cat', 50 )  {
    	//do something if product with ID 50 is either in category "sneakers" or "backpacks"
    }  else  {
    	//do something else if it isn't
    }

    if (has_term (  5, 'product_tag', 971 ) )  {
    	//сделайте что-нибудь, если продукт с ID = 971 имеет тег с ID = 5
    }