[英]Querying a function in functions.php?
我有一个jQuery代码,用于检查用户何时靠近页面底部。 但这不是问题所在。 这个jQuery将发送一个AJAX请求,给出一些关于当用户靠近页面底部时要加载的内容的细节。 目前代码看起来有点像这样:
$("<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);
});
我的主要问题是我不知道要查询什么或如何将信息发送到functions.php中的PHP函数。 例如,我现在有这个作为我的PHP函数(直到它工作):
function get_posts_page() {
if(isset($_GET['offset'])) {
echo"Hello!";
}
}
我知道wordpress有add_action
和所有这些,但我不知道我将什么作为一个动作应用于使PHP接收Javascript发送的数据。 是否存在解析所有函数或其他内容的URL? 在此先感谢您的帮助。 那么如何从我的主题目录中的functions.php中获取Javascript中的数据到PHP函数呢?
我刚刚制作了一个视频,向您展示如何在WordPress中使用add_action
请求。 你可以在这里观看 。
这是我的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>
我在functions.php
使用的php
// 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;
}
你试图从Javascript调用PHP函数,对吗?
你需要一些调用get_posts_page()
页面上的逻辑。 要么你可以创建一个新页面 getPostsPage.php?offset=
或者你可以在functions.php
一些逻辑,比如
if(isset($_GET['function']) { switch($_GET['function']) { case 'get_posts_page': get_posts_page(); } }
但是,建议采用前一种方法; 你不希望有人能够修改function
参数并恶意访问deleteAllPosts()
。
因此:
// getPostsPage.php require PATH . 'functions.php'; get_posts_page(); //checks $_GET['offset']
如果没有设置'offset',或者其他什么,请记住优雅地失败(不要暴露错误信息)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.