您现在的位置是:首页 > 后端 > PHP PHP
给WordPress主题分类\标签页面增加点赞功能
2022-02-25【PHP】3305人已围观
简介首先说明WordPress AJAX 给WordPress主题分类\标签页面增加点赞功能或者是WordPress文章点赞都会给数据库增加表,自WordPress 4.4新增了Term meta,意味着可以像文章点赞一样来实现分类\标签页面增加点赞功能 > wordpress当前把下面的代码加入到 `functions.php`: ``` function wp_term_like( $preifx = null){ global $wp_query; if(!is_tax
首先说明WordPress AJAX 给WordPress主题分类\标签页面增加点赞功能或者是WordPress文章点赞都会给数据库增加表,自WordPress 4.4新增了Term meta,意味着可以像文章点赞一样来实现分类\标签页面增加点赞功能
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
的路径!
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();?>
关注博客,更多精彩分享,敬请期待!
Tags:
很赞哦! (1)
相关文章
随机图文
css动画
> 在CSS动画中,如果你想让元素的 border-radius 从50%逐渐变为0%,你可以使用 @keyframes 规则来定义这一变化过程。以下是一个简单的示例: ```css /* 定义一个动画 */ @keyframes borderRadiusChange { 0% { border-radius: 50%; } 100% { border-radius: 0; } } /* 将动画应用到某个元素上 */ .someElementbat锁屏和熄屏 windows
bat锁屏和熄屏 windowsPHP中判断字符串是否含有中文
## 判断全是中文 > 方法一 ``` $str = '吾爱编程'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是中文'; } else { echo '不全是中文'; } ``` > 方法二 ``` $str="'吾爱it编程"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文";PHP日历
PHP日历小案例