如何将帖子标签添加到WooCommerce产品?

时间:2017-07-17 03:18:14

标签: php wordpress woocommerce

我注意到帖子标签与WooCommerce产品标签不同。

我需要在WooCommerce产品中添加帖子标签,这样我就可以在帖子标签档案中加入一些WooCommerce产品。

这可能吗?

我已尝试过这些代码段,但它不会添加它们。

add_filter( 'pre_get_posts', 'add_custom_types' );

function add_custom_types( $query ) {

  if ( is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {

    $query->set( 'post_type', array( 'post', 'products', 'product' ) );
      return $query;
    }
}

add_filter('request', 'post_type_tags_fix');

function post_type_tags_fix($request) {
    if ( isset($request['tag']) && !isset($request['post_type']) )
    $request['post_type'] = array( 'products', 'product' );
    return $request;
} 

2 个答案:

答案 0 :(得分:0)

使用以下代码在产品标签页中获取存档页面。现在产品标签页面使用主题archive.php文件。

在主题 functions.php

中添加以下代码
add_filter( 'template_include', 'woocommerce_product_tag_page_template', 99 );

if ( ! function_exists( 'hcode_post_format_parameter' ) ) {
    function woocommerce_product_tag_page_template( $template ) {

        if ( is_tax( 'product_tag' ) ) {
            get_template_part('archive');
        }

        return $template;
    }
}

答案 1 :(得分:0)

我也需要这样做,并提出了我认为这样做的好方法。几步:

首先,您需要将post_tag分类法添加到woocommerce产品帖子类型中。您可以使用以下过滤器轻松完成此操作:

function custom_wc_add_post_tags( $args ){
   $args['taxonomies'] =  array('post_tag');
   return $args;
}
add_filter( 'woocommerce_register_post_type_product', 'custom_wc_add_post_tags' );

这会在您的管理菜单中添加一个新的“标签”项,并允许您使用常规帖子标签标记产品,而不是特定于woocommerce的“product_tag”分类标签。其次,如果您不打算使用它,您可能想删除'product_tag'分类标准?因为上面会导致两个称为“标签”的管理菜单项,这会让人感到困惑。以下内容将为您完成:

add_filter('woocommerce_taxonomy_objects_product_tag', '__return_empty_array');
add_filter('woocommerce_taxonomy_args_product_tag', '__return_empty_array');

要从后端的“产品”表中删除该列:

function custom_wc_remove_product_tags_column($columns){
   unset( $columns['product_tag'] );
   return $columns;
}
add_filter( 'manage_edit-product_columns', 'custom_wc_remove_product_tags_column', 15 );

这实际上会将标签添加到您的产品中。如果您需要将这些内容显示在存档页面中,您可能仍需要修改该页面的查询以查找“产品”类型的帖子以及标准的“帖子”。看起来你在'pre_get_posts'钩子上面的函数会为你做那个部分。希望这有帮助!