Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Хлебные крошки - Категория + Бренд (аттрибут)

Тема в разделе "Ищу плагин, функционал", создана пользователем taimerlan, 9 фев 2018.

  1. taimerlan

    taimerlan

    Сообщения:
    8
    Симпатии:
    2
    Баллы:
    3
    Может быть сталкивался с реализацией такого функционала крошек:

    Обычная структура для товаров:
    Главная> Каталог> Категория> Название продукта
    Нужно сделать такую:
    Главная> Каталог> Категория> Категория Бренд > Название продукта
    Ссылка ведет на фильтрацию категории по бренда
    https://site.com/catalog/category/?pa_brand=Sony
    Пример:
    https://www.onlinetrade.ru/catalogu...d_samsung_ue32m5550au_serebristyy-903256.html
    Каталог | ТВ и видео | Телевизоры | Телевизоры SAMSUNG | Светодиодный телевизор Samsung UE32M5550AU, серебристый

    Думаю многим пригодится, если мы сможем решить эту проблему.
     
  2. Useer72

    Useer72

    Сообщения:
    165
    Симпатии:
    27
    Баллы:
    28
    А чем плоха стандартная функция подкатегорий? По-моему все уже решено давно, или я чего то не догоняю?
    Что мешает создать "категорию Бренд" и назначить ей родительскую категорию?
     
    Последнее редактирование: 9 фев 2018
  3. taimerlan

    taimerlan

    Сообщения:
    8
    Симпатии:
    2
    Баллы:
    3
    Да, такой вариант есть, но по многим факторам не походит. Во первых получится дофига категорий в категориях. И можно задолбался перетаскивать несколько тысяч товаров по категориям. Хотя можно через имп/эксп. Но это создание дополнительной нагрузки. Да и в категориях на ряду с основными подкатегориями, будут показываться подкатегории с брендом. Какое-то колхозничество.
    Бренд идёт как таксономия, а именно атрибут товара.
    Можно вывести в крошки категорию и отдельно атрибут. А вот как вывести категорию с фильтрацией по атрибуту, я не нашел инфы.
     
    Последнее редактирование: 9 фев 2018
  4. artemkomarov

    artemkomarov Местный

    Сообщения:
    443
    Симпатии:
    190
    Баллы:
    43
    То что вы хотите можно легко сделать изменением breadcrumbs. Просто перед тем как получить конечную ветку в крошках получаем объект продукта находим его бренд берем ссылку таксономии и выводим прям перед наименованием товара.
     
    • Нравится Нравится x 1
  5. taimerlan

    taimerlan

    Сообщения:
    8
    Симпатии:
    2
    Баллы:
    3
    @artemkomarov, я пытался разобраться с breadcrumb navxt и yoast breadcrumb, но все тщетно. Не нашел даже места куда это можно присобачить. Нужно к ссылке категории добавить ?pa_brand=(название).
     
  6. artemkomarov

    artemkomarov Местный

    Сообщения:
    443
    Симпатии:
    190
    Баллы:
    43
    yoast не разбирал. могу показать как на примере стандартного woocommerce breadcrumbs
     
  7. artemkomarov

    artemkomarov Местный

    Сообщения:
    443
    Симпатии:
    190
    Баллы:
    43
    Вот код целиком чтобы не путаться

    Код:
    <?php
    /**
     * Shop breadcrumb
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/global/breadcrumb.php.
     *
     * HOWEVER, on occasion WooCommerce will need to update template files and you
     * (the theme developer) will need to copy the new files to your theme to
     * maintain compatibility. We try to do this as little as possible, but it does
     * happen. When this occurs the version of the template file will be bumped and
     * the readme will list any important changes.
     *
     * @see         https://docs.woocommerce.com/document/template-structure/
     * @author         WooThemes
     * @package     WooCommerce/Templates
     * @version     2.3.0
     * @see         woocommerce_breadcrumb()
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
        exit;
    }
    
    global $post;
    
    if ( ! empty( $breadcrumb ) ) {
    
        echo $wrap_before;
    
        foreach ( $breadcrumb as $key => $crumb ) {
    
            echo $before;
    
            if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) {
                echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>';
            } else {
    
                // проверяем что мы на странице товара
                if ( is_singular('product') ) {
                    // получаем атрибут
                    $post_brand = wc_get_product_terms( $post->ID, 'pa_brand', array( 'fields' => 'all' ) );
                    if ($post_brand) {
                        // получаем объект атрибута
                        $post_brand = $post_brand[0];
                        // получим предыдущею ссылку в крошках
                        $bread_prev = array_slice($breadcrumb, -2, 1);
                        // добавим имя и ссылку на бренд
                        echo '<a href="' . esc_url( $bread_prev[0][1] ) . '/?pa_brand=' . $post_brand->slug .'">' . esc_html( $bread_prev[0][0] ) . ' ' . $post_brand->name . '</a>';
                        echo $delimiter;
                    }
                }
    
                echo esc_html( $crumb[0] );
            }
    
            echo $after;
    
            if ( sizeof( $breadcrumb ) !== $key + 1 ) {
                echo $delimiter;
            }
        }
    
        echo $wrap_after;
    
    }
    
     
    • Нравится Нравится x 1
    • Согласен Согласен x 1
  8. taimerlan

    taimerlan

    Сообщения:
    8
    Симпатии:
    2
    Баллы:
    3
    Артем, огромное вам спасибо!
    Извините, что сразу не отписался, не было возможности попробовать!
    Напишите кошелек WMR. Хочу вас отблагодарить пивом/соком:
     
  9. artemkomarov

    artemkomarov Местный

    Сообщения:
    443
    Симпатии:
    190
    Баллы:
    43
    Спасибо не надо. :)
     
  10. taimerlan

    taimerlan

    Сообщения:
    8
    Симпатии:
    2
    Баллы:
    3
    Спасибо ещё раз, выручили. Если вдруг будете в Ростове-на-Дону, пишите, звоните +79885668820.