J'ai un processus en plusieurs étapes qui intègre des facettes complexes dans les requêtes WP. Le problème est - plus je deviens profond, plus je deviens flou sur la façon dont il est censé fonctionner et je pourrais utiliser une ligne directrice plutôt que d'être inventif (et de me creuser un trou).
Étapes générales que j'ai (pseudo-code, mais proche du réel):
- récupérer la valeur de l'URL (quelque chose de simple comme
person=1
) - traiter la valeur et ajouter des instructions de requête personnalisées (
$relationship_query[] = array('relationship' => 'person_to_cat', 'object' => 1 );
) - récupérer les instructions de requête personnalisées finales et générer les directives SQL appropriées
À l'heure actuelle, j'en ai beaucoup (relations, taxonomies, dates) et cela devient fragile (un coin de code ne met pas de valeur là où l'autre coin de code s'attend à ce qu'il trouve et tout se détache).
La grande question est donc: quel est le protocole approprié pour transmettre, recevoir, stocker et traiter des données personnalisées vers WP via URL ?
Pièces plus petites:
- comment m'assurer de ne pas entrer en collision avec des internes WP?
- où et comment je stocke les données intermédiaires?
- différence entre
query
etquery_vars
propriétés? Ils semblent être utilisés presque de la même manière dans le code, mais ils ont tendance à avoir des valeurs et des méthodes différentes en faveur d'query_vars
un.
- différence entre
WP
etWP_Query
et bien qu'il y ait beaucoup de choses qui s'y passent, je pense que celaadd_rewrite_tag()
semble le plus succinct pour sensibiliser WP à la var de requête personnalisée et bien jouer avec.Exemple: en chargeant une page avec /? Nom de page = about, WP traitera la chaîne de requête et trouvera que la variable de requête utilisée est page_id.
Un autre exemple: /? Cat = 1, /? Category_name = uncategorized et / category / uncategorized ont la même variable de requête "cat"
la source
J'aurais supposé que cela se faisait via
$_GET
et / ou$_POST
, puis je manipulais en conséquence.Alternativement, stockez l'énorme tas de données dans la base de données, puis analysez un identifiant dans l'URL comme ceci
La requête ne sera évidemment pas aussi simple, elle peut impliquer beaucoup de jointures et de tables de jointures. C'est ce que je fais dans l'une de mes pages, analyser un identifiant unique puis créer les données via MySQL.
la source