web-development-kb-pt.site

Tipo de inscrição personalizada - menu suspenso de taxonomia?

Eu criei um tipo de postagem personalizado e adicionei várias caixas/campos meta a esse tipo de postagem personalizado. Tudo está funcionando excelente, exceto por um elemento ...

Em vez de utilizar a interface padrão para selecionar uma taxonomia, gostaria de ter apenas um menu suspenso para o usuário selecionar.

A ideia aqui é permitir que os administradores adicionem elementos de taxonomia que possam ser gerenciados centralmente, no entanto, para uma postagem específica, ser associado apenas a uma taxonomia.

Além disso, eu preferiria apenas adicionar este drop down em uma das minhas meta caixas existentes.

Alguém tem algum código de exemplo que me permita concluir esta tarefa?

5
NetConstructor.com

Eu respondi a esta pergunta em um post diferente: Salvando Termos de Taxonomia

1
NetConstructor.com

Foi assim que eu fiz isso.

<?php $tax = get_object_taxonomies('TAXONOMY_NAME');
    $taxterms = get_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' );
?>
<select name='tax' id='tax'>
    <option value='' <?php if (!count( $names )) echo "selected";?>>Select Term</option>
    <?php 
    foreach ( $taxterms as $term ) { 
        echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; 
    } ?>
</select>
4
jaredwilli

Eu não tenho código para fazer isso, mas deve ser simples: crie um menu suspenso chamado tax_input[your_taxonomy_name], onde os valores são id se sua taxonomia é hierárquica (como categorias), valores se não (como tags). Se você usar esse nome, eu acho que é salvo automaticamente, sem código extra de você. Você pode criar o menu suspenso com a função wp_dropdown_categories, passar a opção selected com o termo de taxonomia que deve ser selecionado. A função de retorno de chamada que cria a caixa meta recebe o parâmetro $post, para que você possa obter o termo de taxonomia atual de lá.

Para desabilitar a caixa meta que normalmente seria adicionada, você pode definir show_ui como false ao criar a taxonomia ou remover a meta box antes que ela seja desenhada (acho que o add_meta_boxes hook é um bom lugar). Ele terá o id tagsdiv-your_taxonomy_name, se não for hierárquico, ou your_taxonomy_namediv, se for o caso.

1
Jan Fabry