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

<p>в настоящее время я нахожусь на стадии альфа-редактирования дочерней темы для темы wordpress. у меня есть опыт программирования и некоторый опыт управления wordpress, но нет непосредственного опыта редактирования кода, связанного с wordpress. прямо сейчас он отображает первые три категории в алфавитном порядке.</p><p>что я пытаюсь сделать: вместо того, чтобы отображать первые три категории в алфавитном порядке, я хотел бы отобразить 3 случайные категории с более чем x количеством товаров.</p><p>я столкнулся со следующими препятствиями/вопросами, мешающими мне продолжить.</p><ol> <li>какой механизм/функция контролирует выбор этих категорий? (theircode)</li> <li>это тема или что-то в базовой системе wordpress?</li> <li>какая другая информация будет иметь отношение к этому изменению?</li> <li>какая информация будет полезна из firefox dev bar?</li> <li>как мне найти "их код", чтобы я мог заменить его на "мой код"?</li> </ol><p>реальный вопрос здесь:<strong> как я могу найти "ourcode", который отвечает за этот выбор, используя такие инструменты, как firefox dev bar и фактический источник? </strong></p><p>этот вопрос не о woocommerce (плагин). я ищу способ найти функцию в теме, разработанной woocommerce (компания), или в любой другой теме.</p><p>тема с открытым исходным кодом: woocommerce storefront</p>

<blockquote> <p>реальный вопрос здесь: <strong>как я могу найти "ourcode", который отвечает за этот выбор, используя такие инструменты, как панель разработки firefox и фактический источник?</strong></p> </blockquote><p><strong>если</strong>вы ссылаетесь на вывод/источник html, то, например, на официальную тему storefront <a href="https://themes.woocommerce.com/storefront/">demo site</a> , просто щелкните правой кнопкой мыши заголовок или раздел "категории продуктов", и затем вы можете легко проверить, что <code>section</code>. смотрите <a href="https://developer.mozilla.org/en-us/docs/tools/page\_inspector/how\_to/select\_an\_element">mdn doc</a> для других опций, таких как значок "выбор элемента".</p><p> <a href="https://i.stack.imgur.com/leywh.jpg"><img src="https://i.stack.imgur.com/leywh.jpg" alt="enter image description here"></a> </p><p>теперь для "<strong>фактического источника</strong>" (т. е. кода или функции php, которая генерирует раздел "категории продуктов" на страницах с помощью шаблона "домашняя страница"), вы можете найти его в <a href="https://themes.svn.wordpress.org/storefront/2.3.2/inc/storefront-template-functions.php"><code>inc/storefront-template-functions.php</code></a> .</p><pre><code>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, которую вы ищете и которую вы можете полностью переопределить, если хотите (см. <a href="https://docs.woocommerce.com/document/set-up-and-use-a-child-theme/#section-5">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; } ); </code></pre><p>этот фильтр вызывается из функции <code>storefront\_product\_categories()</code>, и это другие фильтры/действия, которые вы можете использовать:</p><ul> <li> <p>фильтр: <code>storefront\_product\_categories\_shortcode\_args</code></p> </li> <li> <p>действие: <code>storefront\_homepage\_before\_product\_categories</code></p> </li> <li> <p>действие: <code>storefront\_homepage\_after\_product\_categories\_title</code></p> </li> <li> <p>действие: <code>storefront\_homepage\_after\_product\_categories</code></p> </li> </ul><p>смотрите <a href="http://blog.teamtreehouse.com/hooks-wordpress-actions-filters-examples">this</a> , если вы не уверены в различиях между "действием" и "фильтром".</p><hr><h2>обновление: <em>как</em> вы можете найти код?</h2><p>просмотрите документацию по теме <a href="https://docs.woocommerce.com/documentation/themes/storefront/">storefront</a> :</p><ul> <li> <p> <a href="https://docs.woocommerce.com/document/storefront-hooks-actions-filters/#section-5"><em>домашняя страница "действия"</em></a> </p> </li> <li> <p> <a href="https://docs.woocommerce.com/document/storefront-hooks-actions-filters/#section-13"><em>шаблонные функции витрины магазина</em></a> </p> </li> <li> <p>проверьте <a href="https://docs.woocommerce.com/document/storefront-filters-example-change-number-products-displayed-per-page/"><em>пример storefront filters: измените количество товаров, отображаемых на странице</em></a> .</p> </li> </ul><blockquote> <p>я ищу способ найти функцию в теме, разработанной woocommerce (компания), или в любой другой теме.</p> </blockquote><ul> <li> <p>сначала проверьте (и прочитайте) документацию темы.</p> </li> <li> <p>если ничего или вы не/не смогли найти нужную информацию, попробуйте то, что предложил <a href="https://wordpress.stackexchange.com/users/132363/motivast">@motivast</a> - проверьте элементы на странице, найдите соответствующий html-код и/или css <code>class</code>/<code>id</code>, а затем ищите в файлах темы эту переменную html или css <code>class</code>/<code>id</code>, пока не найдете нужный файл или php code/<code>function</code>.</p> </li> </ul><p>например, на демонстрационном сайте темы storefront html-код раздела категорий продуктов:</p><pre><code><section class="storefront-product-section storefront-product-categories" aria-label="product categories"> ... </section> </code></pre><p>таким образом, вы можете искать файлы темы, используя <strike>один из</strike> эти ключевые слова: (я бы начал с самого конкретного или самого близкого соответствия сгенерированным html)</p><ul> <li> <p><code><section class="storefront-product-section storefront-product-categories"</code></p> </li> <li> <p><code>class="storefront-product-section storefront-product-categories"</code></p> </li> <li> <p><code>storefront-product-categories</code></p> </li> <li> <p><code>storefront-product-section</code></p> </li> </ul><p>предполагая, что вы не знали о документации storefront/theme, выполнение вышеуказанных поисков в конечном итоге приведет вас к нужному файлу или php code/<code>function</code>.</p><p><em>если вам нужна дополнительная помощь, дайте мне знать, и я соответствующим образом обновлю этот ответ.</em></p>