将父类别模板附加到所有子类别

时间:2018-01-22 作者:Nora McDougall-Collins

我有一个木材厂的客户,他需要将木材作为具有子类别的类别。我们想使用类别木材。父类别和子类别的php。我发现这篇2010年的帖子也提出了同样的问题,但没有成功:Make all subcategories use the template of its category parent? 可能是我用错了,或者函数完全过时了。

您可以在上看到目标https://goosebaylumber.net/category/lumber. 当前,子类别正在选择默认存档。php

更新:现在问题已经解决,给定的链接不再显示默认布局。但是,它的布局与使用归档的博客相同。php。

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

您链接到的代码的主要优点是使用category_template 过滤器,用于修改WordPress在用户查看木材类别的子类别时将使用的模板。我为您整理了这些内容,因为当您只使用一个模板时,它会更简单一些:

// add this filter to your themes functions.php file
add_filter(\'category_template\', \'yourprefix_use_lumber_category_template_for_child_categories\');

function yourprefix_use_lumber_category_template_for_child_categories( $template ) {

    // get the current category object
    $category = get_queried_object();

    // if current category has lumber category(assuming lumber category id == 7) as its parent...
    if( $category->parent == 7 ) {

        // ...then find the named category-lumber.php template in theme, and replace whatever default $template is found by WordPress...
        $template = locate_template(\'category-lumber.php\');

        // ...finally return the lumber category template file
        return $template;

    }
    else {

    // ...the current category has no lumber category as parent, so just return default $template file found by WordPress
    return $template;

    }

}

结束

相关推荐

对WooCommerce的Functions.php更改不起作用

我正在尝试将其添加到函数中。php。在我的另一个站点上的测试实验室中,它可以很好地添加测试信息。但在这个网站上,我试图把它添加到什么都没有发生的情况下。该网站正在使用最新的woocommerce运行一个建筑节俭主题。有什么想法吗?我基本上只是想在每个产品页面上添加一行类似于免责声明但无法添加的文本。add_action(\'woocommerce_before_add_to_cart_form\',\'print_something_below_short_description\');