太原阉来商务服务有限公司

首頁 > wordpress開發(fā) > wordpress主題開發(fā) > 給WordPress主題分類\標簽頁面增加點贊功能
摘要:首先說明WordPress AJAX 給WordPress主題分類\標簽頁面增加點贊功能或者是WordPress文章點贊...

首先說明WordPress AJAX 給WordPress主題分類\標簽頁面增加點贊功能或者是WordPress文章點贊都會給數(shù)據(jù)庫增加表,自WordPress 4.4新增了Term meta,意味著可以像文章點贊一樣來實現(xiàn)分類\標簽頁面增加點贊功能

wordpress當前把下面的代碼加入到functions.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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的路徑!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
jQuery(document).on("click", ".termlike", function() {
    var _self = jQuery(this);
    if (_self.hasClass('is-active')) {
        alert('您已經(jīng)贊過啦')
    } 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分類/標簽頁面點贊調(diào)用方法:

1
<?php wp_term_like();?>

在對應歸檔頁面使用下面代碼,如在其他地方調(diào)用則不會有任何輸出。

分享到:
贊(20) 打賞

作者: 大挖醬

挖主題團隊自2014年開始專注于WordPress企業(yè)主題設計開發(fā),致力于為更多用戶打造出更漂亮、更易用、更專業(yè)的網(wǎng)站。距今已累計開發(fā)近50款WP主題,付費客戶超過5千人。挖主題,是您可以長期信賴的合作伙伴。

88 queries in 0.900 seconds

聯(lián)系作者Q: 8413708 WX: zdmin7

支付寶掃一掃

微信掃一掃