当我们添加不存在的术语元时,插入布尔术语元值,例如。
add_term_meta( 123, \'test\', true );
然后,我们实际上正在运行以下插入:
$wpdb->insert( \'wp_termmeta\', array(
\'term_id\' => 123,
\'meta_key\' => \'test\',
\'meta_value\' => true
) );
在一般范围内
add_metadata()
作用
现在wpdb::insert()
实际上是wpdb::_insert_replace_helper()
准备SQL插入查询并将插入值映射到:
INSERT INTO `wp_termmeta` (`term_id`, `meta_key`, `meta_value`) VALUES (%d, %s, %s)
或者在我们的测试用例中:
INSERT INTO `wp_termmeta` (`term_id`, `meta_key`, `meta_value`) VALUES (123, \'test\', \'1\')
还请注意
meta_value
列为
wp_termmeta
桌子
所以布尔值true
存储为\'1\'
一串
获取布尔术语元值时get_terms()
使用此类元查询运行:
$args = array(
\'taxonomy\' => \'product_cat\',
\'hide_empty\' => false,
\'meta_query\' => array(
array(
\'key\' => \'featured\',
\'value\' => true,
\'compare\' => \'=\'
)
)
);
然后,生成的SQL查询包含:
wp_termmeta.meta_key = \'featured\' AND wp_termmeta.meta_value = \'1\'
其中
true
(bool)转换为
\'1\'
(字符串)。