Agora que o WordPress 4.4 foi lançado, podemos começar a usar o novo e impressionante termo meta-funções!
Ainda assim, parece não haver um tutorial simples sobre como adicionar um campo de texto básico a uma taxonomia. Tentei adaptar este incrível tutorial de Justin Tadlock às minhas necessidades, removendo todo o código relacionado ao seletor de cores e substituindo-o por um simples campo de entrada de texto ... mas não está funcionando.
Alguém poderia fornecer um exemplo de código de trabalho básico? Sem validação de dados, nonces, selecionadores de cores ... apenas uma caixa de texto mínima, adicionada à página Adicionar taxonomia / Editar taxonomia.
Atualização: Enquanto isso, fiz algumas variações desse snippet de código:
Adicione o meta campo de termo à categoria :
https://gist.github.com/ms-studio/543a0f7dd8ac05ccf037Adicione o meta campo do termo à Tag Post :
https://gist.github.com/ms-studio/2d78ad3839e05ece2e48Adicione o meta campo do termo à taxonomia personalizada :
https://gist.github.com/ms-studio/fc21fd5720f5bbdfaddcAdicione vários meta-campos de termos à Taxonomia Personalizada :
https://gist.github.com/ms-studio/aeae733f5fd9fc524bbc
Respostas:
Isso adicionará um campo chamado 'TERM META TEXT' às suas categorias. Eu tirei o nonce, mas realmente acho que deveria voltar. Além disso, é melhor ter um pouco de higienização do que nenhum. Este exemplo inclui ganchos javascript e CSS dos quais você pode ou não precisar, mas pode ver rapidamente como todas as partes estão juntas.
Desfrutar!
fonte
___save_term_meta_text( $term_id )
... e isso corrigiu o problema, o meta texto agora é salvo ao criar um novo termo! Portanto, estou aceitando sua resposta, pois ela fornece exatamente o que eu preciso para começar.___add_form_field_term_meta_text()
função. Depois de adicioná-lo, tudo funciona como esperado.check_admin_referer( 'add-tag', '_wpnonce_add-tag' );
echeck_admin_referer( 'update-tag_' . (int) $_POST['tag_ID'] )
em'edit_category'
e'category_category'
ações.___register_term_meta_text()
função, o terceiro parâmetro foi preterido e substituído por uma matriz. Você teria que usar algo como:$args = array( 'type' => 'string', 'description' => 'A text field', 'single' => 'false', 'sanitize_callback' => '___sanitize_term_meta_weare_product', 'auth_callback' => null, 'show_in_rest' => false, ); register_meta( 'term', '__term_meta_text', $args );