我对通过AJAX加载主题的部分界面感兴趣,并编写了一个函数来处理通用函数。(以下代码。)
它工作正常,但当运行此函数时,wp\\u nav\\u menu()无法可靠地标记具有适当类(如“current menu item”)的链接。它可能有一半的时间有效。
你知道为什么会这样吗?query\\u posts()不会处理的函数/全局变量是否需要处理?
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
}