Simule uma página específica ao fazer chamadas AJAX

Estou interessado em carregar partes da interface do nosso tema sobre o AJAX e escreveu uma function para lidar com funções genéricas. (Código abaixo.)

Funciona bem, mas wp_nav_menu (), quando executado por esta function, não marca de forma confiável os links com classs apropriadas como “item atual do menu”. Isso funciona talvez metade do tempo.

Você sabe por que isso seria? Todas as funções / variables ​​globais precisam ser tratadas para que query_posts () não cuide?

add_action( 'wp_ajax_nopriv_ananda_ajax', 'ananda_ajax_output' ); add_action( 'wp_ajax_ananda_ajax', 'ananda_ajax_output' ); function ananda_ajax_output() { global $post; $function = $_POST['function']; $parameters = $_POST['parameters']; $post_id = $_POST['post_id']; if ( $post_id && ananda_ajax_is_approved_function( $function ) ) { // Query query_posts( array( 'p' => $post_id, 'post_type' => 'any' ) ); // Output the HTML ob_start(); if ( have_posts() ) { the_post(); if ( $parameters ) { call_user_func_array( $function, $parameters ); } else { call_user_func( $function ); } } else { // No posts } // Restore original post data. Probably not needed, but standard best practice. wp_reset_postdata(); // Send the output $output = ob_get_clean(); echo $output; } wp_die(); // Standard AJAX callback procedure } 

Solutions Collecting From Web of "Simule uma página específica ao fazer chamadas AJAX"