是否有一种简单的方法可以保存变量并将其链接到用户?
具体来说,我想使用meta-box在首页上输出一个变量,然后让它成为一个链接,这样如果用户单击它,它就会将其存储在div中。我可以做所有meta-box的事情,只需要在单击链接时存储变量。有点像最受欢迎的系统,但更具自定义性。假设我必须以某种方式访问数据库?甚至不知道从哪里开始。
是否有一种简单的方法可以保存变量并将其链接到用户?
具体来说,我想使用meta-box在首页上输出一个变量,然后让它成为一个链接,这样如果用户单击它,它就会将其存储在div中。我可以做所有meta-box的事情,只需要在单击链接时存储变量。有点像最受欢迎的系统,但更具自定义性。假设我必须以某种方式访问数据库?甚至不知道从哪里开始。
为了详细说明Chris的回答,AJAX调用在您的函数中看起来像这样。php文件:
add_action(\'wp_ajax_add_favorite\', \'add_favorite\');
function add_favorite(){
$post_id = $_POST[\'postID\'];
$nonce = $_POST[\'nonce\'];
if(!wp_verify_nonce($nonce, \'wpnonce\'))
exit;
if($post_id):
$favorites = get_user_meta(get_current_user_id(), \'favorites\');
if(in_array($post_id, $favorites)):
$response = \'Already in favorites.\';
$success = false;
else:
if(add_user_meta(get_current_user_id(), \'favorites\', $post_id, false)):
$response = "This post was added to your favorites";
$success = true;
endif;
endif;
else:
$success = false;
$response = "No post ID was supplied";
endif;
$output = json_encode(array(\'success\'=>$success, \'response\'=>$response));
echo $output;
exit;
}
jQuery AJAX请求如下所示:jQuery(\'.add-to-favorites\').click(function(){
var data = {
action: \'add_favorite\',
nonce: jQuery(\'#_wpnonce\').val(),
postID: jQuery(this).attr(\'rel\')
};
jQuery.post(ajaxurl, data, function(output) {
var obj = jQuery.parseJSON(output);
if(!obj.response) alert(\'Something went wrong with the server.\');
if(obj.success){
//Do Something Here
alert(obj.response);
}
else{
alert(obj.response);
}
});
//Disable Click Through
return false;
});
前端上的链接如下所示:<a class="add-to-favorites\' rel="<?php echo $post->ID;?>" href="#">Add To Favorites</a>
在被调用的“wpnance”中添加一个隐藏的nonce字段,这应该很管用。此外,确保在前端定义了ajaxurl,以便脚本知道将请求发送到哪里。不过,您需要在另一个PHP AJAX函数中执行一些反向工程,才能从收藏夹中删除。希望这对你有所帮助。
您可以使用update_user_meta 存储数据,以及get_user_meta 检索数据。至于在单击时实际保存它,您可以在用户单击链接时使用一个简单的ajax调用。查看以下资源,了解如何在Wordpress中处理AJAX。
我有一个查询用户和usermeta的自定义插件,但我现在需要从结果中筛选管理员。我的sql查询的一个非常简化的版本是:SELECT * FROM usermeta LEFT JOIN users ON users.ID = user_id WHERE meta_key = \'last_name\' AND user_role != \'admin\' ORDER BY meta_value ASC LIMIT 0, 25 user_role 不是字段,我看