
WordPress 4.4 新增了Term meta,意味着可以像文章点赞一样来实现点赞功能了。
本功能可以用在分类、标签,以及其他同级自定义term上。必须为WordPress 4.4及以上版本。
实现方法
下面的代码加入到functions.php
种
function wp_term_like( $preifx = null){ global $wp_query; if(!is_tax() && !is_category() && !is_tag()) return ; $tax = $wp_query->get_queried_object(); $id = $tax->term_id; $num = get_term_meta($id,'_term_like',true) ? get_term_meta($id,'_term_like',true) : 0; $active = isset($_COOKIE['_term_like_'.$id]) ? ' is-active' : ''; $output = '<button class="button termlike' . $active . '" data-action="termlike" data-action-id="' . $id . '">' . $prefix . '<span class="count">' . $num . '</span></button>'; echo $output; } add_action('wp_ajax_nopriv_termlike','wp_term_like_callback'); add_action('wp_ajax_termlike','wp_term_like_callback'); function wp_term_like_callback(){ $id = $_POST['actionId']; $num = get_term_meta($id,'_term_like',true) ? get_term_meta($id,'_term_like',true) : 0; $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; // make cookies work with localhost setcookie('_term_like_'.$id,$id,$expire,'/',$domain,false); update_term_meta($id,'_term_like',$num + 1); echo json_encode(array( 'status'=>200, 'data'=> $num + 1, )); die; }
js代码加入的你的js文件种,注意admin-ajax.php
的路径
jQuery(document).on("click", ".termlike", function() { var _self = jQuery(this); if (_self.hasClass('is-active')) { alert('您已经赞过啦') } else { _self.addClass('is-active'); jQuery.ajax({ url: /wp-admin/admin-ajax.php,//注意你的该文件路径 data: _self.data(), type: 'POST', dataType: "json", success: function(data) { if (data.status === 200) { _self.find('.count').html(data.data) } else { alert('服务器正在努力找回自我') } } }) } });
调用方法
在对应归档页面使用下面代码,如在其他地方调用则不会有任何输出。
<?php wp_term_like();?>
函数有一个前缀文本参数可以设置。
Puma主题最新版本已集成本功能。
这么好的功能啊,有空加上。怎么调用点赞排行呢
@Andrew
暂时无法调用,等wordpress更新
@Andrew 这个好
果然是好东西
纯收藏。
得心应手
发哥要是早点发这货就好了……上个星期才遇到,我愣是拿来当GET表单写了……
@PCDotFan
我一直没更新4.4
使用的就是这个主题,喜欢。
哈哈,不错,我是来凑热闹的!!!欢迎!!下午5:42:07
基本上对这些没有感觉了~但还是赞技术。
很喜欢博主的风格。冒昧地请教博主,文章左下角的喜欢那个的实现代码。
@eeemt
http://wordpress.org/plugins/wp-postlike/
@Jimmy 博主,可以告诉我怎么修改点赞的图标吗,现在是圆角矩形,我想弄成心形。博主告诉我方法方向也行。
url: /wp-admin/admin-ajax.php,//注意你的该文件路径
可以改为: