A melhor maneira de criar uma pesquisa de tipo de postagem personalizado por valores de campo personalizados

Eu tenho um tipo de postagem personalizado chamado pessoas.

Eu quero ter 3 campos de pesquisa para; primeiro nome, nome do meio e sobrenome

Eu estava pensando em criar uma página com minhas próprias checkboxs de pesquisa e usar query_posts:

 'publish' , 'post_type' => array( 'people' ), 'meta_query' => array( array ( 'key' => 'last-name', 'value' => $last, 'compare' => 'LIKE' ), array ( 'key' => 'first-name', 'value' => $first, 'compare' => 'LIKE' ), array ( 'key' => 'middle-name', 'value' => $middle, 'compare' => 'LIKE' ) ) ) ); ?> 

Essa é a maneira correta de pesquisar?

Solutions Collecting From Web of "A melhor maneira de criar uma pesquisa de tipo de postagem personalizado por valores de campo personalizados"

A sua lógica de consulta básica parece ser boa supondo que você deseja uma relação AND entre o primeiro, o meio e os sobrenomes, mas os query_posts nunca são, nunca, o caminho certo para fazer qualquer coisa.

Nota: Esta function não deve ser usada por plugins ou temas . Como explicado mais tarde, há opções melhores e mais performantes para alterar a consulta principal. query_posts () é uma maneira excessivamente simplista e problemática de modificar a consulta principal de uma página, substituindo-a por uma nova instância da consulta. É ineficiente (re-executa consultas SQL) e falhará definitivamente em algumas circunstâncias (especialmente, muitas vezes, quando se trata de paginação de posts). Qualquer código WP moderno deve usar methods mais confiáveis, como fazer uso do gancho pre_get_posts, para esse fim.

Crie um novo object WP_Query e use isso em vez disso.

 $args = array( // your arguments as above ); $q = new WP_Query($args); if ($q->have_posts()) { while ($q->have_posts()) { $q->the_post(); the_title(); // etc. } }