Como usar o modelo dentro do shortcode do plugin com variables ​​para código HTML grande

Eu tenho um código curto que terá um HTML grande.

Ele terá 4 seleções que eu estou obtendo os dados dentro do shortcode:

$house_types = get_terms(array( 'taxonomy' => 'house_types', 'hide_empty' => 0 )); 

Gostaria de inserir um modelo que possa ler essa variável para criar o arquivo de seleção, meu modelo:

     0) { foreach($house_types as $house_type) { echo 'term_id.'">'.$house_type->name.''; } } ?>  

Eu tentei usar isso, mas não faz sentido colocar o modelo dentro do tema e não dentro do diretório do plugin:

 function rci_search_houses( $atts ) { ob_start(); $house_types = get_terms(array( 'taxonomy' => 'house_types', 'hide_empty' => 0 )); get_template_part('search', 'select'); $output = ob_get_contents(); ob_end_clean(); return $output; } add_shortcode('rci-search-houses', 'rci_search_houses'); 

Mas não mostra nada.

Alguém sabe uma maneira melhor de organizar o shortcode no caso de ter um grande html?

Solutions Collecting From Web of "Como usar o modelo dentro do shortcode do plugin com variables ​​para código HTML grande"

Sua principal questão é que você passa o valor como globais, mas nunca os declara como tais.

De um modo geral, “peças de modelo” são úteis quando você quer dar a outra pessoa para substituí-los por um tema infantil ou um plugin, mas se você estiver fazendo um “único off”, é melhor escrever uma function que gera o formulário e passa para ele os parâmetros relevantes em vez de usar variables ​​globais.

   < ?php echo do_shortcode('[rci-search-houses]');?>