1. David Wu首页
  2. WordPress
  3. WordPress安装教程

给WordPress分类\标签页面增加点赞功能

首先说明 wordpress AJAX 给 WordPress 主题分类\标签页面增加点赞功能或者是 WordPress 文章点赞都会给数据库增加表,自 WordPress 4.4 新增了 Term meta,意味着可以像文章点赞一样来实现分类\标签页面增加点赞功能,wordpress 当前把下面的代码加入到 functions.php:

  1. function wp_term_like( $preifx = null){
  2.     global $wp_query;
  3.     if(!is_tax() && !is_category() && !is_tag()) return ;
  4.     $tax = $wp_query->get_queried_object();
  5.     $id = $tax->term_id;
  6.     $num = get_term_meta($id,'_term_like',true) ? get_term_meta($id,'_term_like',true) : 0;
  7.     $active = isset($_COOKIE['_term_like_'.$id]) ? ' is-active' : '';
  8.     $output = '<button class="button termlike' . $active . '" data-action="termlike" data-action-id="' . $id . '">' . $prefix . '<span class="count">' . $num . '</span></button>';
  9.     echo $output;
  10. }
  11. 
    
  12. add_action('wp_ajax_nopriv_termlike','wp_term_like_callback');
  13. add_action('wp_ajax_termlike','wp_term_like_callback');
  14. function wp_term_like_callback(){
  15.     $id = $_POST['actionId'];
  16.     $num = get_term_meta($id,'_term_like',true) ? get_term_meta($id,'_term_like',true) : 0;
  17.     $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; // make cookies work with localhost
  18.     setcookie('_term_like_'.$id,$id,$expire,'/',$domain,false);
  19.     update_term_meta($id,'_term_like',$num + 1);
  20.     echo json_encode(array(
  21.         'status'=>200,
  22.         'data'=> $num + 1,
  23.         ));
  24.     die;
  25. }

AJAX js 代码加入的你的 js 文件中,注意 admin-ajax.php 的路径!

  1. jQuery(document).on("click", ".termlike", function() {
  2.     var _self = jQuery(this);
  3.     if (_self.hasClass('is-active')) {
  4.         alert('您已经赞过啦')
  5.     } else {
  6.         _self.addClass('is-active');
  7.         jQuery.ajax({
  8.             url: /wp-admin/admin-ajax.php,//注意你的该文件路径
  9.             data: _self.data(),
  10.             type: 'POST',
  11.             dataType: "json",
  12.             success: function(data) {
  13.                 if (data.status === 200) {
  14.                     _self.find('.count').HTML(data.data)
  15.                 } else {
  16.                     alert('服务器正在努力找回自我')
  17.                 }
  18.             }
  19.         })
  20.     }
  21. });

完成以上所有的操作以后,我们开始讲 WordPress 分类/标签页面点赞调用方法:

  1. <?php wp_term_like();?>

在对应归档页面使用下面代码,如在其他地方调用则不会有任何输出。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/98820

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注