WP在单独的PHP文件中调用自定义AJAX请求(WP Query)

时间:2017-10-05 10:07:05

标签: javascript php ajax wordpress

我正在尝试在我的WP主题文件夹中的PHP文件中调用自定义AJAX函数,但是我无法让它检索输出。我认为问题在于将WP查询链接到主WP文件?

$.ajax({
url: "../../ajax-crew.php",
type: "POST",
data: {loadcrew: true},
etc etc etc ...

我的自定义ajax-crew.php文件位于我的主题文件夹中(当我简单地回显“test”时,我将输出检索到我的页面,但是当我尝试使用WP查询时,它不会创建任何输出:

<?php include '../../../wp-load.php'; ?>
<?php
if (isset($_POST['loadcrew'])){
$args = array(

'post_type' => 'team-members',
'order'     => 'rand',
'posts_per_page' => 1
);
query_posts($args);
if ( have_posts() ) : while ( have_posts() ) : the_post(); 
$thumb_id = get_post_thumbnail_id();
$thumb_url = wp_get_attachment_image_src($thumb_id,'featured-400-400', true);
$index = $wp_query->current_post;

echo $thumb_url[0];
endwhile;
endif;
} // end if isset
?>

2 个答案:

答案 0 :(得分:1)

您永远不应该创建自己的AJAX处理程序PHP文件,这可能存在安全风险。 WordPress有自己的AJAX处理程序文件,可以使用操作和过滤器连接,你应该使用它。关于WordPress Codex的这篇文章有关于如何使用它的完整说明,以及前端和后端使用的示例:AJAX in Plugins

答案 1 :(得分:0)

你应该尝试米兰的回答。但是如果你想知道你的代码在哪里无法返回响应,你可以使用WP php console转储变量(将你的代码移到function.php并在php脚本中调用函数)......