it-swarm.com.ru

Отображение случайных категорий на главной странице (Поиск и редактирование функций темы)

В настоящее время я нахожусь на стадии альфа-редактирования дочерней темы для темы Wordpress. У меня есть опыт программирования и некоторый опыт управления WordPress, но нет непосредственного опыта редактирования кода, связанного с WordPress. Прямо сейчас он отображает первые три категории в алфавитном порядке.

Что я пытаюсь сделать: вместо того, чтобы отображать первые три категории в алфавитном порядке, я хотел бы отобразить 3 случайные категории с более чем x количеством товаров.

Я столкнулся со следующими препятствиями/вопросами, мешающими мне продолжить.

  1. Какой механизм/функция контролирует выбор этих категорий? (TheirCode)
  2. Это тема или что-то в базовой системе WordPress?
  3. Какая другая информация будет иметь отношение к этому изменению?
  4. Какая информация будет полезна из Firefox Dev Bar?
  5. Как мне найти "Их код", чтобы я мог заменить его на "Мой код"?

Реальный вопрос здесь: Как я могу найти "OurCode", который отвечает за этот выбор, используя такие инструменты, как Firefox Dev Bar и фактический источник?

Этот вопрос не о WooCommerce (плагин). Я ищу способ найти функцию в теме, разработанной WooCommerce (компания), или в любой другой теме.

Тема с открытым исходным кодом: WooCommerce Storefront

8
T. Thomas

Реальный вопрос здесь: Как я могу найти "OurCode", который отвечает за этот выбор, используя такие инструменты, как панель разработки Firefox и фактический источник?

Есливы ссылаетесь на вывод/источник HTML, то, например, на официальную тему Storefront demo site , просто щелкните правой кнопкой мыши заголовок или раздел "Категории продуктов", и затем вы можете легко проверить, что section. Смотрите MDN doc для других опций, таких как значок "Выбор элемента".

enter image description here

Теперь для "фактического источника" (т. Е. Кода или функции PHP, которая генерирует раздел "Категории продуктов" на страницах с помощью шаблона "Домашняя страница"), вы можете найти его в inc/storefront-template-functions.php .

if ( ! function_exists( 'storefront_product_categories' ) ) {
    /**
     * Display Product Categories
     * Hooked into the `homepage` action in the homepage template
     *
     * @since  1.0.0
     * @param array $args the product section args.
     * @return void
     */
    function storefront_product_categories( $args ) {

        if ( storefront_is_woocommerce_activated() ) {

            $args = apply_filters( 'storefront_product_categories_args', array(
                'limit'             => 3,
                'columns'           => 3,
                'child_categories'  => 0,
                'orderby'           => 'name',
                'title'             => __( 'Shop by Category', 'storefront' ),
            ) );

            ...
        }
    }
}

Так что storefront_product_categories() - это функция PHP, которую вы ищете и которую вы можете полностью переопределить, если хотите (см. Https://docs.woocommerce.com/document/set- up-and-use-child-theme/# section-5 ). Но если вы просто хотите отображать категории товаров в случайной сортировке, то вы можете просто использовать storefront_product_categories_args для фильтрации аргументов запроса (который в вашем случае будет orderby):

add_filter( 'storefront_product_categories_args', function( $args ){
    $args['orderby'] = 'Rand';
    return $args;
} );

Этот фильтр вызывается из функции storefront_product_categories(), и это другие фильтры/действия, которые вы можете использовать:

  • Фильтр: storefront_product_categories_shortcode_args

  • Действие: storefront_homepage_before_product_categories

  • Действие: storefront_homepage_after_product_categories_title

  • Действие: storefront_homepage_after_product_categories

Смотрите this , если вы не уверены в различиях между "действием" и "фильтром".


ОБНОВЛЕНИЕ: Как вы можете найти код?

Просмотрите документацию по теме Storefront :

Я ищу способ найти функцию в теме, разработанной WooCommerce (компания), или в любой другой теме.

  • Сначала проверьте (и прочитайте) документацию темы.

  • Если ничего или вы не/не смогли найти нужную информацию, попробуйте то, что предложил @motivast - проверьте элементы на странице, найдите соответствующий HTML-код и/или CSS class/id, а затем ищите в файлах темы эту переменную HTML или CSS class/id, пока не найдете нужный файл или PHP code/function.

Например, на демонстрационном сайте темы Storefront HTML-код раздела категорий продуктов:

<section class="storefront-product-section storefront-product-categories" aria-label="Product Categories">
    ...
</section>

Таким образом, вы можете искать файлы темы, используя один из эти ключевые слова: (я бы начал с самого конкретного или самого близкого соответствия сгенерированным HTML)

  • <section class="storefront-product-section storefront-product-categories"

  • class="storefront-product-section storefront-product-categories"

  • storefront-product-categories

  • storefront-product-section

Предполагая, что вы не знали о документации Storefront/theme, выполнение вышеуказанных поисков в конечном итоге приведет вас к нужному файлу или PHP code/function.

Если вам нужна дополнительная помощь, дайте мне знать, и я соответствующим образом обновлю этот ответ.

11
Sally CJ