web-dev-qa-db-fra.com

Comment afficher uniquement les termes par identifiant ou slug sur edit-tags.php (page de gestion de taxonomie personnalisée) pour une taxonomie personnalisée

Comment puis-je afficher uniquement les termes par id ou slug sur edit-tags.php (page de gestion de la taxonomie personnalisée) pour une taxonomie personnalisée?.

Je sauvegarde des métadonnées propriétaire_dernier dans une table pour chaque terme et récupère les identifiants de tous les termes pour un propriétaire_dernier spécifique. Maintenant, je veux afficher uniquement ces termes sur edit-tags.php.

J'ai essayé le filtre list_terms_exclusions mais il semble que les doses ne fonctionnent pas pour edit-tags.php?taxonomy={custom_taxonomy_name} ou quelque chose me manque.

Quelqu'un peut-il m'aider avec un exemple de travail?

Merci.

1
mha

Le edit-tags.php n'écoute aucun argument sauf la variable de requête de recherche s. Si vous voulez faire quelque chose de plus avancé, vous devrez vous connecter au filtre get_terms.

2
Jan Fabry

J'ai ajouté ce code à mon thème function.php pour ma taxonomie personnalisée "série".


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;
}

mais rien ne s'est passé. Ce code est basé sur @MikeSchinkel. Je pense que @Jan Fabry a raison de dire que le edit-tags.php n'écoute aucun argument. Mais je ne sais pas comment faire ça.

Toute aide est la bienvenue. Merci.

0
mha