当前位置: 首页 > 知识库问答 >
问题:

获取特定属性分类法术语段塞

韩彬
2023-03-14

我试图从特定的属性分类法中获取术语slug,但什么也得不到。

$attr_langs = 'pa_languages';
$attr_langs_meta = get_post_meta('id', 'attribute_'.$attr_langs, true);
$term = get_term_by('slug', $attr_langs_meta, $attr_langs);

提前非常感谢!

共有1个答案

尉迟龙光
2023-03-14

这是正常的,它不工作作为get_post_meta()第一个函数参数需要是一个数值,但不是一个文本字符串作为'id'(后ID)...变量。

您可以通过不同的方式获取产品ID:

1)从WP_Post对象:

global $post; 
$product_id = $post->ID; 

2)从WC_Product对象:

$product_id = $product->get_id(); 

现在正确的方法是:

// The defined product attribute taxonomy
$taxonomy = 'pa_languages';

// Get an instance of the WC_Product Object (necessary if you don't have it)  
// from a dynamic $product_id (or defined $product_id)
$product = wc_get_product($product_id);

// Iterating through the product attributes
foreach($product->get_attributes( ) as $attribute){
    // Targeting the defined attribute
    if( $attribute->get_name() == $taxonomy){
        // Iterating through term IDs for this attribute (set for this product)
        foreach($attribute->get_options() as $term_id){
            // Get the term slug
            $term_slug = get_term( $term_id, $taxonomy )->slug;

            // Testing an output
            echo 'Term Slug: '. $term_slug .'<br>';
        }
    }
}

或仅适用于可变产品(类似产品):

// The defined product attribute taxonomy
$taxonomy = 'pa_languages';

// Get an instance of the WC_Product Object (necessary if you don't have it)  
// from a dynamic $product_id (or defined $product_id)
$product = wc_get_product($product_id);

// Iterating through the variable product variations attributes
foreach ( $product->get_variation_attributes() as $attribute => $terms ) {
    // Targeting the defined attribute
    if( $attribute == $taxonomy ){
        // Iterating through term slugs for this attribute (set for this product)
        foreach( $terms as $term_slug ){
            // Testing an output
            echo 'Term Slug: ' . $term_slug . '<br>';
        }
    }
}

这应该对你有用...

 类似资料:
  • 在Woocommerce中,您可以添加全局产品属性和术语。例如: 这是独立于产品的。然后可以从产品的预定义属性中进行选择。 我需要用php获取属性中的所有术语。因此,选择所需的属性,例如size,然后返回一个数组,其中包括。 看起来很简单,但我找不到任何帮助。

  • 我已经为“产品”帖子类型注册了两个分类法。称他们为帕乌品牌 我已经创建了一个前端表单来编辑通过URL参数获取产品数据的产品。 我需要的是获得 以下仅适用于单个产品页面,因此我可以获得与产品相关的正确术语。 但如果页面不是单一产品,则为,我得到两个

  • 问题内容: 我有几个领域的大型语料库的索引。这些字段中只有一个包含文本。我需要基于此字段从整个索引中提取唯一单词。有谁知道我如何在Java中使用Lucene做到这一点? 问题答案: 您正在寻找术语向量(字段中所有单词的集合以及每个单词的使用次数,不包括停用词)。您将对索引中的每个文档使用IndexReader的getTermFreqVector(docid,field),并在其中填充。 替代方法是

  • 我一直在查看Laravel系列的文档和API,但似乎没有找到我想要的: 我想从集合中检索具有模型数据的数组,但只获取指定的属性。 例如,类似于,其中集合实际上包含用户的所有属性,因为它们在其他地方使用,但在这个特定位置,我需要一个包含userdata的数组,并且只包含指定的属性。 在拉雷维尔,似乎没有一个帮手来帮你我怎样才能用最简单的方法做到这一点?

  • 我一直试图得到我在组件中指定的protype。 在我的组件中,我有一个静态对象类型: 现在我一直在想我是否能够得到我指定的PropTypes类型。如果我记录组件的proptypes,它会显示proptypes的值是一个函数。 有没有办法让指定的类型离开那里?