如何获取分类法的所有术语元-获取分类法的术语元

时间:2021-03-22 作者:Zeth

TL;DR: 我正在尝试获取meta\\u值display_type 对于分类法,它返回空白(尽管我可以在数据库中看到它)。

这个问题想访问分类法上的术语meta:product_cat, 这是WooCommerce制定的分类法。

我在这里问这个,而不是StackOverflow,因为它与WoodPress的关系比与WooCommerce的关系更密切。

在我的数据库中,我可以看到数据库中有几行$term->ID = 15.

meta_id    |  term_id  |  meta_key       |  meta-value
---------------------------------------------------
1          |  15       |  display_type   |  subcategories
2          |  15       |  thumbnail_id   |  0
204        |  15       |  product_....   |  45
676        |  15       |  an_acf_field   |  test
676        |  15       |  _an_acf_field  |  field_123abc123abc
但出于某种原因,此返回为空:

$term = get_queried_object(); // in the file taxonomy-product-cat.php
$display_type = get_term_meta( $term->ID, \'display_type\' ); // $term->ID = 15
echo \'<pre>\';
print_r($display_type);
echo \'</pre>\';
// Returns empty
所以我想我可以调试它term_meta 对于该ID(15)。但是我找不到任何WordPress函数可以获取所有的meta\\u字段?

解决方案尝试

Attempt 1 - Using WPDB

我可以这样做:

global $wpdb;
$test = $wpdb->get_results( "SELECT * FROM wp_termmeta WHERE term_id = \'15\'");
但这似乎是一种非文字印刷的方式。

<小时/>

Attempt 2 - get_term_meta without key

一个大胆的猜测是这样做:

$term = get_queried_object(); 
$display_type = get_term_meta( $term->ID ); // !! No key defined
echo \'<pre>\';
print_r($display_type);
echo \'</pre>\';
// Still returns empty
<小时/>

Attempt 3 - Looking into WooCommerce documentation

我可以看到WooCommerce访问display_type 它本身here

像这样:

$display_type = get_term_meta( $item->term_id, \'display_type\', true );
。。。所以我很困惑,它不适合我。

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

您正在使用$term->ID. 分类术语没有ID 所有物他们有一个term_id 属性:

$display_type = get_term_meta( $term->term_id );
您会注意到WooCommerce正在使用它,而您的尝试却没有。

相关推荐

构建具有多个赞的动态WPDB查询

我需要使用多个字符串查询数据库表。只有当;“标签”;列匹配所有字符串。我事先不知道字符串的数量(它是动态的)。我想我很熟悉这段代码,但我没有从数据库中获得任何匹配项: function getMatchingRecipes() { // get the search query: $tags = ($_POST["tagsToSearchWith"]); // clean it up: