wpbrasil / odin

Framework and base theme for development with WordPress.
http://wpod.in
565 stars 195 forks source link

Preencher opções de custom field select com termos de uma taxonomy #477

Closed silvaitamar closed 6 years ago

silvaitamar commented 6 years ago

Talvez seja mais algo relacionado a PHP que não estou sabendo ligar. Estou criando custom fields em um metabox com o Odin, e dentre esses custom fields, deve existir um select que as suas opções serão os termos de uma taxonomy. No Odin as opções de um custom field select são definidas através de um array com chaves e valores (https://github.com/wpbrasil/odin/wiki/Classe-Odin_Metabox…). Já tentei definir as opções do select com array_combine usando dois arrays, um para as chaves e outro para valores com o slug e nome de cada termo respectivamente, criados com array_push e com base em um objeto WordPress criado através da recuperação dos termos da taxonomy através da função get_terms, porém não deu certo. Alguém saberia e poderia orientar como posso fazer isso?

AdsonCicilioti commented 6 years ago

Fala @itamarsilvacc! Poderia mostrar o trecho do seu código para sabermos até onde chegou.? Já tentou o Codex do WP? Tem o get_terms() ou get_the_terms() lá. Não sei se ajuda.

silvaitamar commented 6 years ago

Olá @AdsonCicilioti ! O que eu fiz foi recuperar os termos da Taxonomy e aí criei dois arrays, um para chaves e outro para os valores, pra inserir no array de opções do custom field select, como a seguir:

$editoria_terms = get_terms( array( 'taxonomy' => 'editoria', 'hide_empty' => false ) ); $editoria_terms_keys = array(); $editoria_terms_values = array(); foreach( $editoria_terms as $editoria_term ) { array_push( $editoria_terms_keys, $editoria_term->slug ); array_push( $editoria_terms_values, $editoria_term->name ); }

E aí tentei inserir as opções com array_combine no array de opções do select:

'options' => array_combine( $editoria_terms_keys, $editoria_terms_values )

Mas não funcionou. Eu sei como recuperar os termos com o get_terms, a minha dúvida é como passar eles na definição das opções do custom field select, que estou estou criando com o Odin.

AdsonCicilioti commented 6 years ago

Ja tentou passar o array_combine() numa variavel e depois mandar no options?

silvaitamar commented 6 years ago

Funcionou @AdsonCicilioti ! Grato pela dica!