Alterar os itens de nível superior para botões de opção na caixa Meta de categorias?

4

Eu sei que é possível alterar a lista de categorias do WordPress para botões de opção no painel de administração para postagens, mas eu gostaria de fazer as caixas de seleção apenas os botões de opção Pais e as subcategorias ou filhos ... algo como isto.

<ul>
    <li><input type="radio"> Category 1
        <ul class="children">
        <li><input type="checkbox">Category 1 - Sub Cat 1</label></li>
        <li><input type="checkbox">Category 1 - Sub Cat 2</label></li>
        </ul>
    </li>
    <li><input type="radio"> Category 2</li>
    <li><input type="radio"> Category 3</li>
    <li><input type="radio"> Category 4
        <ul class="children">
        <li><input type="checkbox">Category 4 - Sub Cat 1</label></li>
        <li><input type="checkbox">Category 4 - Sub Cat 2</label></li>
        </ul>
    </li>
    <li><input type="radio"> Category 5</li>
</ul>

Eu realmente não quero mexer nos arquivos principais e me pergunto se alguém sabe uma maneira de substituir a saída por meio das funções do tema ou de outro método.

    
por brasofilo 18.09.2011 / 13:05

2 respostas

1

Tenho certeza que você poderia usar JavaScript para fazer isso para você de maneira muito simples. Eu tentaria isso:

function convert_root_cats_to_radio()
{
    global $post_type;

    if ( 'post' != $post_type )
        return;
    ?>
    <script type="text/javascript">
    jQuery("#categorychecklist>li>label input").each(function(){
        this.type = 'radio';
    });
    </script>
    <?php
}
add_action( 'admin_footer-post.php', 'convert_root_cats_to_radio' );
add_action( 'admin_footer-post-new.php', 'convert_root_cats_to_radio' );

O que isso faz é percorrer a hierarquia e converte os itens de nível superior em botões de opção. Se você precisar aplicar isso estritamente, o javascript não será uma boa solução, pois as categorias de nível raiz ainda podem ser selecionadas na guia popular.

Confira também este plug-in para manter a hierarquia depois de salvar: enlace

Se você precisar de algo um pouco mais exeqüível, precisará de um plug-in personalizado para isso. O plugin mencionado acima seria um ótimo lugar para começar nesse esforço!

Felicidades ~

    
por Matthew Boynes 22.01.2012 / 03:11
0

Se a função usar um tipo walker, substitua por uma classe filha estendida do walker.

Se você fizer isso, poderá controlar como a classe filha fará o eco do html. Você pode estilizá-lo da maneira que você quiser.

    
por uwiuw 07.12.2011 / 19:26