web-dev-qa-db-fra.com

Afficher toutes les balises post sur post edit screen/sidebox

Je cherche un moyen d’afficher toutes les balises de publication sur l’écran de modification de la publication/les balises sidebox dans la section admin de WordPress. Par défaut, WordPress affiche les 45 balises les plus utilisées, mais il me faut un moyen de répertorier toutes les balises ou d'augmenter au moins cette limite.

J'ai trouvé une question similaire ici Afficher toutes les balises dans admin -> edit post . Mais il suggère d’éditer/modifier les fichiers de base de WordPress, ce qui n’est pas ce que je veux vraiment. Parce que la mise à jour 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 la totalité ou plus de 45 balises sur la page de modification.

8
Robert hue

Je dirais que le moyen le plus simple de le faire est d'utiliser le filtre get_terms_args et de désactiver la limite number 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.

Edit: Comme @bonger l’a suggéré, vous pouvez déterminer le type de message à partir du référant:

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';
}
9
TheDeadMedic

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;
0
Somi