使用jQuery.load()将php文件包含在div中,wp_query()是php文件的一部分

时间:2016-12-19 作者:Mark

我有两个php文件;一个叫做page-my-template.php, 在里面,我有一个<div></div> 我想包含来自另一个php文件的所有代码my-content.php. 我原以为这很简单,但事实证明这是一个非常头痛的问题。

在继续之前,我没有使用JSON,没有使用任何表单或传递数据,也没有编写插件。我只是有一个在我的页面上只使用一次的模板文件,名为page-my-template.php, 我需要从my-content.php 在div中。使用jQuery.load(), 但没有,请阅读下面的内容。

文件内部my-content.php, 我正在使用许多核心函数,如get\\u option()、WP\\u Query()等。当然,如果我使用jQuery.load("my-content.php"). 我意识到我需要通过admin-ajax.php 为了以正确的方式进行此操作。

我花了很多时间阅读关于如何将ajax与Wordpress结合使用的教程。我所看到的关于如何将ajax与Wordpress结合使用的所有教程都非常复杂,涵盖的内容远远超过我所寻求的内容,例如创建自定义挂钩、使用表单和编写插件。是否有一种简单的方法来包含admin-ajax.php, 这样我就可以访问Wordpress的核心方法my-content.php 文件如果是这样的话,请告诉我要包含它的代码是什么,以及该代码的确切位置。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

在WordPress中使用AJAX基本上非常简单。

您需要一个处理AJAX请求的函数,以及add_action 调用将该函数映射到action 您传递给admin-ajax.php, 在这种情况下,some_action:

function wpd_ajax_function() {
    get_template_part( \'my-content\' );
    wp_die();
}
add_action( \'wp_ajax_some_action\', \'wpd_ajax_function\' );
add_action( \'wp_ajax_nopriv_some_action\', \'wpd_ajax_function\' );
这将符合你的主题functions.php 文件您可以看到,该函数所做的只是加载my-content.php 文件,然后退出执行。

一旦你准备好了,你可以通过访问admin-ajax.php 在浏览器中使用some_action 附加的操作:

http://yourdomain.com/wp-admin/admin-ajax.php?action=some_action
您应该看到您的输出。如果你用你的jQuery.load() 代码,你应该拥有你需要的一切。

相关推荐

尝试在WordPress中实现AJAX注释,遇到WP错误

我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i