web-dev-qa-db-ja.com

カスタム分類法のedit-tags.php(カスタム分類法管理ページ)にidまたはスラッグで用語のみを表示する方法

カスタム分類についてedit-tags.php(カスタム分類管理ページ)にidまたはスラッグで用語のみを表示するにはどうすればよいですか。

用語ごとにterm_ownerメタデータをテーブルに保存し、特定のterm_ownerのすべての用語のIDを取得します。今私はこれらの用語だけをedit-tags.phpに表示したいと思います。

私はlist_terms_exclusionsフィルターを試しましたが、edit-tags.php?taxonomy={custom_taxonomy_name}に対してはうまくいかないか、何かが足りないのです。

実例で私を手伝ってくれる人はいますか?

ありがとうございます。

1
mha

edit-tags.phpは、s検索クエリ変数以外の引数をリッスンしません。もっと高度なことをしたいのなら、get_termsフィルタにフックする必要があります。

2
Jan Fabry

私は私のカスタム分類法「シリーズ」のために私のテーマfunction.phpにこれらのコードを追加しました。


add_filter('edited_terms', 'mysite_edited_terms');
function mysite_edited_terms($term_id) {
  if($_POST['taxonomy'] == 'series'): {
    $user = wp_get_current_user();
    if ($user->ID) {
      $terms = get_user_meta($user->ID,'users_terms_for_series');
      $terms = (empty($terms) ? $term_id : "{$terms},{$term_id}");
      update_user_meta($user->ID,'users_terms_for_series',$terms);
    }
  }
}

add_filter('list_terms_exclusions', 'my_list_terms_exclusions', 10, 2);
function my_list_terms_exclusions( $exclusions, $args ) {
  global $pagenow;
  if (current_user_can('can_manage_all_terms') && 
    $pagenow=='edit-tags.php?taxonomy=series') {
    $terms = get_user_meta($user->ID,'users_terms_for_series');
    $exclusions = " {$exclusions} AND t.ID NOT IN ({$terms})";
  }
  return $exclusions;
}

しかし何も起こらなかった。このコードは@MikeSchinkelに基づいています。 @ Jan Fabryは、edit-tags.phpが引数を受け取らないことは正しいと思います。しかし、それをする方法はありません。

任意の助けは大歓迎です。ありがとう。

0
mha