Prod-catというカスタム分類法があります
テンプレート内の出力を番号順に並べたいので、次のように分類法にterm_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 );
}
}
私はterm_metaを動かしています、それは救われています。それから私はこれをテンプレートで行います:
$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"メタで注文することはできません。これで誰?ありがとう
get_terms
は、 here に示すように、新しい WP_Meta_Query パラメーターを呼び出すmeta_query
をサポートしています。希望のメタを使って用語を検索するには、関数呼び出しを次のように変更します。
$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 );
このコードはテストされていないため、例で変更する必要があるかもしれません。しかし、リンクはあなたを解決策に導くはずです。
$args = array(
'taxonomy' => 'MY_TAX',
'meta_key' => 'ordem',
'meta_compare' => 'NUMERIC',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'hide_empty' => false,
);
$the_query = new WP_Term_Query($args);
foreach ( $the_query->get_terms() as $term )
{
...
}
私のために、私はカスタム分類法を作りました、そしてそのカスタム分類法の中で私はカスタムメタを持っていました。私は管理バックエンドに列を入れたいと思い、それをソート可能にしました。カスタムメタのカスタム分類の分類可能な作業をするために私はこれをしました。
public function pre_get_terms( $query ) {
$meta_query_args = array(
'relation' => 'AND', // Optional, defaults to "AND"
array(
'key' => 'order_index',
'value' => 0,
'compare' => '>='
)
);
$meta_query = new WP_Meta_Query( $meta_query_args );
$query->meta_query = $meta_query;
$query->orderby = 'position_clause';
私はこのリンクで答えを見つけました https://core.trac.wordpress.org/ticket/34996
@ eherman24のコメントに記載されている回答を修正する必要がありました。