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

时间:2018-06-24 作者:T. Thomas

我目前正在为Wordpress主题编辑子主题的alpha阶段。我有编程经验和管理wordpress的一些经验,但没有编辑wordpress相关代码的直接经验。目前,它按字母顺序显示前三个类别。

我想做的是:我不想按字母顺序显示前三个类别,而是想显示3个随机类别,其中包含x个以上的产品。

我遇到了以下阻碍我前进的障碍/问题。

哪些机制/功能控制这些类别的选择?(他们的代码)它是基于主题的还是底层WordPress系统中的什么How do I find "TheirCode" which is responsible for this selection using tools such as firefox Dev Bar and the actual source?

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

开源主题:WooCommerce店面

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

这里真正的问题是:How do I find "TheirCode" which is responsible for this selection using tools such as firefox dev bar and the actual source?

If 您指的是HTML输出/源,然后是官方店面主题demo site, 只需右键单击“Product Categories”(产品类别)标题或部分,即可轻松查看section. 请参见MDN doc 其他选项,如“选择元素”图标。

enter image description here

现在开始“the actual source“(即使用“主页”模板在页面上生成“产品类别”部分的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/#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 theme documentation:

  • Homepage "actions"

  • Storefront template functions

    Storefront Filters example: Change the number of products displayed per page.

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

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

    如果没有或您没有/找不到所需的信息,请尝试@motivast 已建议—检查页面上的元素,找到适当的HTML代码和/或CSSclass/id, 然后在主题文件中搜索HTML或CSSclass/id 直到找到正确的文件或PHP代码/function.

    例如,在店面主题演示网站上,产品类别部分的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

    假设您不知道店面/主题文档,执行上述搜索最终会找到正确的文件或PHP代码/function.

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

结束

相关推荐

使用wp_Dropdown_Categories($args)的输出

请温柔点,我对所有这些编码都是新手!我终于找到了如何获得前端下拉字段,允许我从EDD类别中进行选择(我从Codex中获得):<div class=\"gallery-row\"> <li id=\"categories\"> <h2><?php _e( \'Categories:\' ); ?></h2> <form id=\"category-select\" class=\"category-