分享各种网络资源
是我乃至整个互联网的精髓所在
 您目前所在位置: 站点首页 » WordPress » WordPress 代码 » WordPress 添加AJAX 分类/标签点赞
  • WordPress 添加AJAX 分类/标签点赞

    WordPress 添加AJAX 分类/标签点赞-BanYuner

    今天FA的博客又更新了一篇文章,文章是关于分类点赞的,鉴于我现在的WordPress版本是4.3.1,但是问题是这篇文章仅仅支持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文件一般都是在custome.js中的:

    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();?>
    

    我从原作者博客截取了一个效果图,大家可以看看:
    WordPress 添加AJAX 分类/标签点赞-BanYuner

    打赏 分享此文

    扫码,支持我

    WordPress 添加AJAX 分类/标签点赞

    支付宝(点击图片切换)

    扫码,支持我

    WordPress 添加AJAX 分类/标签点赞

    微信(点击图片切换)

    扫码,手机看

    WordPress 添加AJAX 分类/标签点赞
    WordPress 添加AJAX 分类/标签点赞
    2 + 8 =