Tenho um processo de vários estágios que integra facetas complexas às consultas do WP. O problema é: quanto mais profundo eu fico, mais confuso fico em como ele deve funcionar e eu poderia usar uma diretriz em vez de ser inventiva (e me cavar um buraco).
Estágios gerais que eu tenho (pseudo-código, mas quase real):
- recuperar valor do URL (algo simples como
person=1
) - valor do processo e anexar instruções de consulta personalizadas (
$relationship_query[] = array('relationship' => 'person_to_cat', 'object' => 1 );
) - recuperar instruções de consulta personalizadas finais e gerar diretivas SQL apropriadas
Até agora, eu tenho muita coisa acontecendo (relacionamentos, taxonomias, datas) e está se tornando frágil (um canto do código não valoriza o valor que outro canto do código espera encontrar e tudo se desfaz).
A questão é tão grande - qual é o protocolo adequado para transmitir, receber, armazenar e processar dados personalizados para o WP via URL ?
Peças menores:
- como garantir que não colidir com os internos do WP?
- onde e como armazeno dados intermediários?
- diferença entre
query
equery_vars
propriedades? Eles parecem ser usados quase da mesma forma no código, mas tendem a conter valores e métodos diferentes, favorecendoquery_vars
um.
- diferença entre
WP
eWP_Query
e enquanto há um monte de coisas acontecendo lá, eu acho queadd_rewrite_tag()
parece forma mais sucinta para fazer WP ciente de costume consulta var e jogar bem com ele.Exemplo: carregando uma página com /? Pagename = about, o WP processará a sequência de consultas e descobrirá que o query_var que está sendo usado é page_id.
Outro exemplo: /? Cat = 1, /? Category_name = uncategorized e / category / uncategorized têm a mesma query_var 'cat'
fonte
Eu teria assumido que isso era feito via
$_GET
e / ou$_POST
, em seguida, manipulado de acordo.Como alternativa, armazene o grande conjunto de dados no banco de dados e analise um ID no URL como
A consulta obviamente não será tão simples, pode envolver muitas junções e tabelas de junções. É o que faço em uma das minhas páginas, analiso uma identificação única e construo os dados via MySQL.
fonte