【问题标题】:How to add post tags to WooCommerce products?如何将帖子标签添加到 WooCommerce 产品?
【发布时间】:2017-07-17 03:18:13
【问题描述】:

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

我需要为 WooCommerce 产品添加帖子标签,以便我可以在帖子标签档案中包含一些 WooCommerce 产品。

这可能吗?

我已经尝试过这些代码 sn-ps 但它没有添加它们。

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;
} 

【问题讨论】:

  • @Dav 产品标签与帖子标签相同。你能告诉我为什么需要新标签吗?
  • 发布标签与产品标签不同,使用不同的标签存档页面。我想标记一些产品,以便将它们包含在博客页面的帖子标记存档中。
  • 检查我的答案。你需要在你的主题functions.php文件中添加过滤器

标签: php wordpress woocommerce


【解决方案1】:

我也需要这样做,并且我想出了一个我认为是这样做的好方法。几个步骤:

首先,您需要将 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”钩子上的函数将为您完成该部分。希望这会有所帮助!

【讨论】:

  • 我尝试了多种不同的方法,这是唯一能完全按照我的意愿行事的方法。干杯!
【解决方案2】:

使用以下代码在产品标签页面中获取存档页面。现在产品标签页使用主题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;
    }
}

【讨论】:

  • 谢谢,但我无法使用帖子标签标记 WooCommerce 产品,因此它们包含在帖子标签档案中。
  • @Dav 帖子标签和产品标签都不同,因为帖子类型不同,所以可以分开工作
  • 我需要一个解决方案,使我能够将带有帖子标签的产品添加到帖子标签档案,而不是 WooCommerce 产品标签档案。
  • 两个标签都有不同的帖子类型,所以它应该适用于不同的页面
  • @MukeshPanchal 你怎么知道 woocommer 的标签列表,我的意思是('template_include')我怎么知道我需要什么标签,例如(在显示有关单个产品的所有信息之前)。
猜你喜欢
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 2020-11-08
  • 1970-01-01
相关资源
最近更新 更多