在 WordPress 中使用 Ajax 提升用户体验度
使用Ajax实现快速数据提交和页面更新
在页面上提交一些简单的数据时,使用Ajax操作可以避免刷新整个页面,快速的完成数据的提交和界面的更新,对于一些简单的操作,使用Ajax提交和更新数据会给用户比较好的体验,大家见得比较多的Ajax实例应该就是QQ空间的点赞和收藏了。
WordPress系统对Ajax操作的支持
WordPress系统对Ajax操作提供了很好的支持,我们只需要很少的工作,就可以完成Ajax提交,一起来看一下以下代码。
functionenqueue_scripts_styles_init(){
wp_enqueue_script('ajax-script',get_stylesheet_directory_uri().'/js/script.js',array('jquery'),1.0);//jQuery会自动加载
//get_template_directory_uri().'/js/script.js';//父主题中使用
//get_stylesheet_directory_uri().'/js/script.js';//子主题中使用
//plugins_url('/js/script.js',__FILE__);//插件中使用
wp_localize_script('ajax-script','ajax_object',array('ajaxurl'=>admin_url('admin-ajax.php')));//设置ajaxurl
}
add_action('init','enqueue_scripts_styles_init');
functionajax_action_stuff(){
$post_id=$_POST['post_id'];//为ajax提交获取参数
//执行ajax操作
update_post_meta($post_id,'post_key','meta_value');
echo'ajax已提交';
die();//停止执行
}
add_action('wp_ajax_ajax_action','ajax_action_stuff');//为登录用户添加ajax功能
add_action('wp_ajax_nopriv_ajax_action','ajax_action_stuff');//为未登录用户添加功能
以上是Ajax提交所需要的PHP代码,把以上代码放到主题的functions.php文件或插件文件中,就为Ajax提交做好了后端的支持。当然,我们也可以通过一些类库来自定义WordPressUrl路由来实现Ajax操作的后端。
实现Ajax提交的jQuery代码
jQuery(function($){
$('.target').click(function(){
$.post(
ajax_object.ajaxurl,{
action:'ajax_action',
post_id:$(this).find('input.post_id').attr('value')
},
function(data){
c-alert(data);//提示'ajax已提交',也可以把成功的消息更新到DOM中
});
});
});
另外一种写法:
jQuery(function($){
$('.target').click(function(){
$.ajax({
url:ajax_object.ajaxurl,
type:'POST',
data:{
'action':'example_ajax_request',
'post_id':$(this).find('input.post_id').attr('value')
},
success:function(data){
c-alert(data);//提示'ajax已提交',也可以把成功的消息更新到DOM中
},
error:function(errorThrown){
console.log(errorThrown);
}
});
});
});
这一段是Ajax提交的jQuery代码,可以放到网站公用的js文件或直接放到页面中,其中"ajaxurl"
会自动加载在头部。
提交数据的HTML代码
<divclass="target">点击提交<inputclass="post_id"type="hidden"value="77"/>
这一段代码放在页面中需要的位置,点击“点击提交”后,数据会通过Ajax提交给ajax_action_stuff
,ajax_action_stuff
执行成功后返回data给相应的jQuery代码,整个Ajax流程就成功完成了。

-
IDC/ISP办理许可证的基本条件(附:IDC和ISP许可证申请流程) 2023-06-07 08:00:01
-
利用tinymce.activeEditor获取到 WordPress可视化编辑器中的值(附:tinymce.activeEditor常见其他用法) 2023-06-06 08:00:02
-
WordPress是什么框架吗?WordPress是用什么写的? 2023-06-06 08:00:02
-
WordPress哪个版本稳定好用(附:如何查看当前WordPress版本) 2023-06-06 08:00:02
-
Automattic 发布 wp-now:由 WordPress Playground 提供支持的本地开发环境 2023-06-05 08:00:02
-
UGPT插件:国内首个永久免费WordPress ChatGPT插件 2023-06-04 08:00:01
-
PHP预定义常量都有哪些(含常见PHP魔术常量) 2023-06-04 08:00:01
-
php的 require 和include 有什么区别 2023-06-04 08:00:01
-
wordpress seo哪个插件好用 – WordPress SEO by Yoast 2023-06-03 08:00:02
-
WordPress古腾堡编辑器模块开发教程 2023-06-03 08:00:02