Tengo un proceso de etapas múltiples que integra facetas complejas en consultas WP. El problema es que cuanto más profundo me vuelvo más borroso me vuelvo sobre cómo se supone que funciona y podría usar una guía en lugar de ser inventivo (y cavar un hoyo).
Etapas generales que tengo (pseudocódigo, pero casi real):
- recuperar el valor de la URL (algo simple como
person=1
) - procesar el valor y agregar instrucciones de consulta personalizadas (
$relationship_query[] = array('relationship' => 'person_to_cat', 'object' => 1 );
) - recuperar instrucciones de consulta personalizadas finales y generar directivas SQL apropiadas
En este momento tengo muchas cosas así (relaciones, taxonomías, fechas) y se está volviendo frágil (una esquina del código no pone valor donde otra esquina del código espera que se encuentre y todo se deshace).
Entonces, la gran pregunta es: ¿cuál es el protocolo adecuado para pasar, recibir, almacenar y procesar datos personalizados a WP a través de URL ?
Partes más pequeñas:
- ¿Cómo asegurarme de que no choque con los componentes internos de WP?
- ¿Dónde y cómo almaceno los datos intermedios?
- diferencia entre
query
yquery_vars
propiedades? Parece que se usan casi de la misma manera en el código, pero tienden a tener diferentes valores y métodos a favorquery_vars
.
- diferencia entre
WP
yWP_Query
y si bien hay un montón de cosas que suceden allí, creo queadd_rewrite_tag()
parece forma más sucinta para hacer WP conscientes de la costumbre var query y jugar bien con ella.Ejemplo: al cargar una página con /? Pagename = about, WP procesará la cadena de consulta y encontrará que query_var que se usa es page_id.
Otro ejemplo: /? Cat = 1, /? Category_name = uncategorized y / category / uncategorized tienen la misma query_var 'cat'
fuente
Habría asumido que se haría a través de
$_GET
y / o$_POST
, luego manipular en consecuencia.Alternativamente, almacene la gran cantidad de datos en la base de datos y luego analice una identificación en la url de esta manera
La consulta obviamente no será tan simple, puede involucrar muchas uniones y tablas de unión. Eso es lo que hago en una de mis páginas, analizar una identificación única y luego construir los datos a través de MySQL.
fuente