WooCommerce父类别和子类别的不同模板

时间:2020-02-27 作者:jamesmonk83

我需要一种方法,有两个不同的布局Woocommerce产品类别。一个用于包含产品的类别,另一个用于显示子类别的类别。我一直在网上搜寻相关代码,但似乎找不到任何接近我需要的代码。

有人对我如何在我的网站上实现这一点有什么想法吗?

提前感谢,

詹姆斯

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

对子项和父项使用不同布局的一种简单方法是检查当前查询的对象是否具有父项,然后根据if语句包含正确的模板部分。比如像这样,

// in your taxonomy/term template file
$current_term = get_queried_object();
// parent property is either 0 or the parent ID
if ( $current_term->parent ) {
  get_template_part( \'term-child-template\' );
} else {
  get_template_part( \'term-parent-template\' );
}
我尚未测试以下示例,但您可能可以使用template_include 如果当前对象是子项或父项,还可以通过筛选切换模板。

function child_or_parent_taxonomy_template( $template ) {
  $current_object = get_queried_object();
  if ( is_a( $current_object, \'WP_Term\' ) ) {
    $term_template = $current_tax->parent ? \'child\' : \'parent\';
    $term_template = locate_template( array( "term-{$term_template}-template.php" ) ); // update as per your setup
    if ( \'\' !== $term_template ) {
      return $term_template;
    }
  }
  return $template;
}
add_filter( \'template_include\', \'child_or_parent_taxonomy_template\', 99 );

相关推荐

Archive for custom taxonomy

我在函数中定义了一个自定义的post类型电影。phpfunction create_post_type() { register_post_type( \'movies\', array( \'supports\' => array(\'title\', \'editor\' , \'excerpt\' , \'custom-fields\'), \'labels\' => array( \'taxonomies\' => \'m