我猜你调用的页面在某处执行了一个带有301响应的wp\\u重定向。我真的没有答案,但也许你可以试试下面的方法。Ajax不知道您的调用来自哪种类型的页面,并且可能会加载一些奇怪的query\\u vars来触发重定向。
如果您使用永久链接加载页面,是否可以尝试使用非永久链接url在插件文件夹中进行文本搜索,查找wp\\u重定向以查看是否出现问题Ajax调用操作。
var response;
jQuery.post(
// see tip #1 for how we declare global javascript variables
MyAjax.ajaxurl,
{
// here we declare the parameters to send along with the request
// this means the following action hooks will be fired:
// wp_ajax_nopriv_myajax-submit and wp_ajax_myajax-submit
action : \'searchmap\',
// other parameters can be added along with "action"
postID : MyAjax.postID,
count : \'16\'
},
function( response ) {
jQuery("#div-searchmap").html(response);
jQuery("#div-searchmap").show();
}
);
如果您想使用wp\\u ajax,则需要添加更多内容。
// declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php)
wp_localize_script( \'my-ajax-request\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
// this hook is fired if the current viewer is not logged in
if (isset($_GET[\'action\'])) {
do_action( \'wp_ajax_nopriv_\' . $_GET[\'action\'] );
}
// if logged in:
if (isset($_POST[\'action\'])) {
do_action( \'wp_ajax_\' . $_POST[\'action\'] );
}
if(is_admin()) {
add_action( \'wp_ajax_searchmap\', \'my_searchmap_function\' );
} else {
add_action( \'wp_ajax_nopriv_searchmap\', \'my_searchmap_function\' );
}
我在ajax脚本中使用POST变量,这样它就可以在admin中运行,如果使用GET编写jquery脚本,则需要在admin外部调用norpriv函数。(现在才弄明白)
你可能不得不到处修改脚本,这只是一个简单的例子。
函数必须返回所需的数据。例如:
function my_searchmap_function() {
// Start output buffer
ob_start();
?>
div>
<h3>Pages</h3>
<ul>
<?php wp_list_pages(\'title_li=&depth=0&exclude=\'); ?>
</ul>
<h3>Posts</h3>
<?php $first = 0;?>
<ul>
<?php
$myposts = get_posts(\'numberposts=-1&offset=$first\');
foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<h3>Categories</h3>
<ul>
<?php wp_list_categories(\'title_li=&orderby=name\'); ?>
</ul>
</div>
<?php
$output = ob_get_contents();
// Stop output buffer
ob_end_clean();
$response = json_encode($output);
// response output
header( "Content-Type: application/json" );
echo $response;
// IMPORTANT: don\'t forget to "exit"
exit;
}