在functions.php中查询函数?
我有一个jQuery代码,它将在用户接近页面底部时进行检查。但这不是问题所在。这个jQuery将发送一个AJAX请求,给出当用户接近页面底部时要加载什么的一些细节。代码目前看起来有点像这样:在functions.php中查询函数?,php,javascript,jquery,wordpress,Php,Javascript,Jquery,Wordpress,我有一个jQuery代码,它将在用户接近页面底部时进行检查。但这不是问题所在。这个jQuery将发送一个AJAX请求,给出当用户接近页面底部时要加载什么的一些细节。代码目前看起来有点像这样: $("<div>").load('?ajax=y&offset=something', function() { $(".empty-div").append($(this)); setTimeout(function(){ console.log('after',
$("<div>").load('?ajax=y&offset=something', function() {
$(".empty-div").append($(this));
setTimeout(function(){ console.log('after', $(document).height()); }, 0);
setTimeout(function(){ console.log('after', $(window).height()); }, 0);
});
我知道wordpress有
add_action
以及所有这些功能,但我不知道我会将什么作为一个动作应用到这两个函数中,以使PHP接收Javascript发送的数据。是否存在解析所有函数的URL或其他内容?提前谢谢你的帮助。那么,如何将数据从Javascript获取到我的主题目录functions.PHP中的PHP函数?您试图从Javascript调用PHP函数,对吗
在调用get\u posts\u page()
的某些页面上需要一些逻辑。您可以创建一个新页面getPostsPage.php?offset=
,或者您可以在functions.php
中添加一些逻辑,比如
if(isset($_GET['function']) {
switch($_GET['function']) {
case 'get_posts_page':
get_posts_page();
}
}
如果未设置“偏移量”或其他任何设置,请记住优雅地失败(不要暴露错误消息)。我刚刚制作了一个视频,向您展示如何使用WordPress中的
添加操作请求。你可以
这是我的javascript
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script>
$('#branding img').click(function() {
$.post('<?php bloginfo('siteurl') ?>/wp-admin/admin-ajax.php', {
action: 'my_unique_action',
offset: 5
}, function(data) {
$('#content').prepend('<p>' + data + '</p>');
});
});
</script>
参考资料:请参阅@Baylor Rae的答案,因为这是使用WordPress实现AJAX的标准方法,如果您使用标准方法,那么您需要处理太多自动的事情(如安全性)。
// getPostsPage.php
require PATH . 'functions.php';
get_posts_page(); //checks $_GET['offset']
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script>
$('#branding img').click(function() {
$.post('<?php bloginfo('siteurl') ?>/wp-admin/admin-ajax.php', {
action: 'my_unique_action',
offset: 5
}, function(data) {
$('#content').prepend('<p>' + data + '</p>');
});
});
</script>
// Make sure it runs when the user is logged in,
// and when they are not.
add_action('wp_ajax_my_unique_action', 'get_offset');
add_action('wp_ajax_nopriv_my_unique_action', 'get_offset');
function get_offset() {
if( isset($_POST['offset']) ) {
echo 'Your ajax request was successful. Here was your offset: <strong>' . $_POST['offset'] . '</strong>';
}
die;
}