web-dev-qa-db-fra.com

Comment WordPress convertit l'URL en $ query_string

Mon home.php affiche une liste de (N) posts et des liens << Précédent & Suivant >>. Lorsque je clique dessus, je souhaite récupérer la liste précédente/suivante de publications (N) en utilisant Ajax. C'est: je ne veux pas charger la page entière. Je veux juste obtenir la liste des articles et l'ajouter à la liste courante.

Pour cela, je fais une requête ajax et envoie href (URL) en tant que paramètre. Le problème est que je ne sais pas comment WordPress convertit une URL en $ global query_string. Je souhaite réutiliser le code testé de WordPress au lieu d’écrire le mien. S'il vous plaît aider

Par exemple: je souhaite renseigner $ query_string pour cette URL: http://example.com/page/2/?location=boston

2
a_fan

Départ WP::parse_request() - malheureusement, il n’a jamais été conçu pour un usage public. Vous pouvez essayer ceci, pas sûr des répercussions:

global $wp,
       $wp_the_query;

// Grab the request_uri component of the referer URL.
if ( ! $url = parse_url( $_GET['my_referer_parameter'] ) )
    return 'Oh dear, poorly formed referer.';

// Ewww! Trick WP::parse_request by spoofing REQUEST_URI. 
$_SERVER['REQUEST_URI'] = $url['path'] . "?{$url['query']}";

$wp->parse_request();
$wp->query_posts();

// $wp_the_query should now be populated with posts queried by your referer.
while ( $wp_the_query->have_posts() ) {

    $wp_the_query->the_post();
    the_title();

}
1
TheDeadMedic

Bien que la question du traitement des liens soit intéressante en soi, je pense que pour le cas d'utilisation Ajax, il serait plus simple et plus fiable de produire des informations plus spécifiques dans le corps de la page sous forme de variable JS que Ajax soumettrait.

La pratique courante en ce sens consiste à utiliser wp_localize_script() pour transmettre des données.

0
Rarst