在进行AJAX调用时模拟特定页面

时间:2015-06-02 作者:Nabha

我对通过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

}

1 个回复
SO网友:Nabha

事实证明,问题出在其他地方。但我确实了解到,无法直接覆盖查询的URL,因为它来自$\\u服务器变量。

这里的答案有一些代码供任何想这样做的人使用:https://stackoverflow.com/questions/10739721/wordpress-ajax-parse-url

结束

相关推荐

知道AJAX调用正在调用哪个脚本/页面

我必须对wordpress网站进行反向工程,这需要一些更新,但我无法在一个地方使其正常工作。在这里,单击一个链接,就会对返回404错误的某个页面进行AJAX调用。我无法获得正在调用的确切php脚本。是否有任何方法可以获取AJAX调用所调用的脚本或页面?