我有一个自定义的分类法,叫做prod cat
我想按编号对模板中的输出进行排序,因此我在分类法中添加了一个term\\u meta,如下所示:
add_action( \'prod-cat_add_form_fields\', \'add_feature_group_field\', 10, 2 );
function add_feature_group_field($taxonomy) {
?>
<div class="form-field term-order-wrap">
<label for="term-order">Order</label>
<input type="text" name="wm-cat-prod-order" />
</div>
<?php
}
然后:
add_action( \'created_prod-cat\', \'save_feature_meta\', 10, 2 );
function save_feature_meta( $term_id, $tt_id ){
if( isset( $_POST[\'wm-cat-prod-order\'] ) && \'\' !== $_POST[\'wm-cat-prod-order\'] ){
add_term_meta( $term_id, \'wm-cat-prod-order\', $_POST[\'wm-cat-prod-order\'], true );
}
}
我有一个术语\\u meta working,它正在被保存。然后在模板中执行以下操作:
$args = array(
\'taxonomy\' => \'categoria-de-productos\',
\'orderby\' => \'wm-cat-prod-order\',
\'order\' => \'ASC\',
\'hide_empty\' => false,
\'hierarchical\' => false,
\'parent\' => 0,
);
$terms = get_terms( $args );
但我无法通过“wm cat prod order”元将其订购。这上面有人吗?谢谢
最合适的回答,由SO网友:Fabian Marz 整理而成
get_terms
支持ameta_query
这需要一个新的WP_Meta_Query 如您所见的参数here. 要使用所需的元查询术语,可以将函数调用更改为以下内容:
$args = array(
\'taxonomy\' => \'categoria-de-productos\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\',
\'hide_empty\' => false,
\'hierarchical\' => false,
\'parent\' => 0,
\'meta_query\' => [[
\'key\' => \'wm-cat-prod-order\',
\'type\' => \'NUMERIC\',
]],
);
$terms = get_terms( $args );
此代码未经测试,可能需要在示例中进行更改。但这些链接应该可以引导您找到解决方案。