Mostrar todas as tags de postagem na tela de edição de postagem / sidebox

8

Eu estou procurando uma maneira de mostrar todas as tags de postagem na tela de edição de postagem / tags sidebox na seção de administração do WordPress. Por padrão, o WordPress mostra 45 tags mais usadas, mas eu preciso de uma maneira de listar todas as tags lá ou, pelo menos, aumentar esse limite.

Encontrei uma pergunta semelhante aqui Mostrando todas as tags em admin -> editar postagem . Mas sugere editar / modificar os arquivos principais do WordPress, que não é o que eu realmente quero. Porque a atualização do WordPress será um grande problema então.

Também não consegui encontrar nada na pesquisa do Google. Portanto, existe uma maneira de listar todas ou mais de 45 tags na página de pós-edição.

Robert hue
fonte

Respostas:

9

Eu diria que a maneira mais fácil de fazer isso é usar o get_terms_argsfiltro e desmarcar o numberlimite se o contexto estiver correto (a solicitação AJAX para obter a nuvem 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' );

Nota: na caixa de edição, o link ainda exibirá "Escolha entre as tags mais usadas", mesmo que agora todas sejam exibidas.

Edit: Como o @bonger sugeriu, você pode determinar o tipo de postagem do referenciador:

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
fonte
2
+1. Seria bom se ele pudesse ser executado apenas para tipos específicos de postagens, mas acho que não é tão fácil. Em relação a "Escolha entre as tags mais usadas" , é possível usar o gettextfiltro para alterá-lo.
gmazzap
@ GM Sim, podemos mudar o texto. Mas estou bem com "Escolha entre as tags mais usadas". Embora eu esteja me perguntando por que não podemos procurar post typeaqui? Isso é executado antes de tudo?
Robert hue
1
Não há como determinar o tipo de postagem no contexto em que o filtro é executado. Você pode ver a qual tipo de publicação a taxonomia está associada, mas isso só será útil se for o único tipo de publicação. A única outra opção é remover o post_tags_meta_boxmanipulador padrão e substituí-lo pelo seu.
TheDeadMedic
Embora você possa usar $_SERVER['HTTP_REFERER']para descobrir post_typese você realmente queria.
Bonger
1
Você poderia usar wp_get_referer(). Lembre-se de que ela também retorna falsecaso a solicitação atual e a anterior sejam iguais (quem teve essa ideia: aplauso lento).
kaiser
0

Além da resposta do TheDeadMedic, para mostrar TODAS as tags:

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

Apenas adicionando algumas informações relevantes básicas:

Ao definir uma taxonomia, 'hierarchical'=>trueela usará a caixa lateral do formato da categoria e mostrará todos os termos por padrão.

user315338
fonte