Afficher tous les tags de publication sur l'écran / la boîte latérale de modification de publication

8

Je cherche un moyen d'afficher toutes les balises de publication sur l'écran de modification des publications / la boîte latérale des balises dans la section d'administration de WordPress. Par défaut, WordPress affiche les 45 balises les plus utilisées, mais j'ai besoin d'un moyen pour y répertorier toutes les balises ou au moins augmenter cette limite.

J'ai trouvé une question similaire ici. Afficher toutes les balises dans admin -> modifier le post . Mais cela suggère d'éditer / modifier les fichiers principaux de WordPress, ce qui n'est pas vraiment ce que je veux. Parce que la mise à niveau de WordPress sera alors un énorme problème.

Je n'ai également rien trouvé dans la recherche Google. Il existe donc un moyen de répertorier toutes ou plus de 45 balises sur la page de post-édition.

Robert hue
la source

Réponses:

9

Je dirais que la façon la plus simple de le faire est d'utiliser le get_terms_argsfiltre et de supprimer la numberlimite si le contexte est correct (la demande AJAX pour obtenir le nuage de tags):

function wpse_64058_all_tags ( $args ) {
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' )
        unset( $args['number'] );
    return $args;
}

add_filter( 'get_terms_args', 'wpse_64058_all_tags' );

Remarque: Dans la zone d'édition, le lien indiquera toujours "Choisissez parmi les balises les plus utilisées", même si nous les affichons maintenant toutes.

Modifier: comme l'a suggéré @bonger, vous pouvez déterminer le type de publication à partir du référent:

if ( $qs = parse_url( wp_get_referer(), PHP_URL_QUERY ) ) {
    parse_str( $qs, $args );

    if ( ! empty( $args['post_type'] ) )
        $post_type = $args['post_type'];
    elseif ( ! empty( $args['post'] ) )
        $post_type = get_post_type( $args['post'] );
    else
        $post_type = 'post';
}
TheDeadMedic
la source
2
+1. Ce serait bien s'il ne pouvait être exécuté que pour des types de publication spécifiques, mais je crains que ce ne soit pas si facile. Concernant "Choisir parmi les tags les plus utilisés" , il est possible d'utiliser un gettextfiltre pour le changer.
gmazzap
@GM Oui, nous pouvons changer le texte. Mais je suis d'accord avec "Choisissez parmi les balises les plus utilisées". Bien que je me demande pourquoi ne pouvons-nous pas vérifier post typeici? Est-ce exécuté avant tout le reste?
Robert hue du
1
Il n'y a aucun moyen de déterminer le type de publication dans le contexte que le filtre exécute. Vous pouvez voir à quel type de publication la taxonomie est attachée, mais cela n'est utile que si c'est le seul type de publication. La seule autre option consiste à supprimer le post_tags_meta_boxgestionnaire par défaut et à le remplacer par le vôtre.
TheDeadMedic
Bien que vous puissiez utiliser $_SERVER['HTTP_REFERER']pour savoir post_typesi vous le vouliez vraiment.
bonger
1
Vous pourriez utiliser wp_get_referer(). Gardez à l'esprit qu'elle revient falseégalement dans le cas où la requête en cours et la précédente sont égales (celui qui a eu cette idée: clap lent).
kaiser
0

Ajout à la réponse de TheDeadMedic, pour afficher TOUS les tags:

if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' ) {
    unset( $args['number'] );
    $args['hide_empty'] = 0;
}
return $args;
Somi
la source
0

Il suffit d'ajouter quelques informations pertinentes de base:

Lorsque vous définissez un paramètre de taxonomie, 'hierarchical'=>trueil utilise la zone latérale de format de catégorie et affiche tous les termes par défaut.

user315338
la source