您是一个wordpress疯狂的折腾者就像我一样,今天给大家带来了什么wordpress教程呢,也许您对wordpress文章点赞有所折腾但是wordpress分类标签点赞您折腾没有?对!您没有听错,今天要讲的就是与文章点赞有所不同的WordPress AJAX 分类/标签点赞!
首先说明WordPress AJAX 分类/标签点赞或者是WordPress文章点赞都会给数据库增加表,如果您对数据库增加表态度不是很苛刻,对于功能的执着更大于数据库大小完全可以试试WordPress AJAX 分类/标签点赞让您的WordPress变得更强大好玩吧。
WordPress 4.4新增了Term meta,意味着可以像文章点赞一样来实现点赞功能了,所以说WordPress AJAX 分类/标签点赞本功能前提可以用在分类、标签,以及其他同级自定义term上。必须为WordPress 4.4及以上版本。
wordpress教程老规矩使用下面的代码加入到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;
}

AJAX js代码加入的你的js文件中,注意admin-ajax.php的路径,看到这里了如果您的WordPress技术还不是很熟练那么对于admin-ajax.php指定也有所茫然,也就是说本篇文章教程已经失去了您实战的意义。多多看看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('服务器正在努力找回自我')
                }
            }
        })
    }
});

完成以上所有的操作以后,我们开始讲WordPress分类/标签点赞调用方法:在对应归档页面使用下面代码,如在其他地方调用则不会有任何输出。这个是必须要知道!


<?php wp_term_like();?>

好了今天的WordPress分类/标签就讲到这里了,如果您喜欢本篇教程可以收藏起来,及时现在用不到也许哪天会用到哟!