在首页上显示随机类别(查找和编辑主题功能)


8

我目前正处于为Wordpress主题编辑子主题的Alpha阶段。我确实有编程经验,并且有一些管理wordpress的经验,但是没有直接的经验来编辑wordpress相关代码。现在,它当前按字母顺序显示前三个类别。

我正在尝试做的是:我不想显示按字母顺序显示的前三个类别,而是要显示3个随机类别,其产品数量超过x。

我遇到了以下路障/问题,阻止我继续前进。

  1. 哪种机制/功能控制着这些类别的选择?(他们的代码)
  2. 是基于主题的还是底层WordPress系统中的某些内容?
  3. 哪些其他信息与进行此更改有关?
  4. Firefox Dev Bar会提供哪些有用的信息?
  5. 如何找到“ TheirCode”,以便将其替换为“ MyCode”?

真正的问题是:如何使用诸如firefox Dev Bar和实际来源之类的工具找到负责该选择的“ TheirCode”?

这个问题与WooCommerce(插件)无关。我正在寻找一种在WooCommerce(该公司)设计的主题中或实际上在任何主题中找到功能的方法。

开源主题:WooCommerce店面


2
使用Firefox Developer Inspector搜索具有特定类别或ID包装类别的标签。然后,在主题源文件中搜索此类或id。您应该找到某种显示类别的功能。覆盖函数或使用函数过滤器替换类别。
kierzniak '18年

Answers:


11

真正的问题是:如何使用firefox开发人员工具栏和实际源代码找到负责此选择的“ TheirCode”?

如果您指的是HTML输出/源,那么例如在官方的Storefront主题演示网站上,只需右键单击“产品类别”标题或部分,然后就可以轻松地进行检查section。有关其他选项,例如“选择元素”图标,请参见MDN文档

在此处输入图片说明

现在,对于“ 实际来源 ”(即使用“主页”模板在页面上生成“产品类别”部分的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-a-child-theme/#第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

这个,如果你不知道的“行动”和“过滤器”之间的区别。


更新:您如何找到代码?

浏览店面主题文档

我正在寻找一种在WooCommerce(该公司)设计的主题中或实际上在任何主题中找到功能的方法。

  • 首先,检查(并阅读)主题的文档。

  • 如果没有,或者您找不到/找不到所需的信息,请尝试使用@motivast的建议—检查页面上的元素,找到适当的HTML代码和/或CSS class/ id,然后在主题文件中进行搜索HTML或CSS class/,id直到找到正确的文件或PHP代码/为止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

如果您需要进一步的帮助,请告诉我们,我将相应地更新此答案。


答案的更新部分不适用于店面2.5.0,甚至在其自己的文档站点上也不提供给定的过滤器示例。
klewis19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.