WordPress点赞功能虽然对网站整体的SEO优化意义不大,但是如果很多人给你的文章点赞,那就是说文章得到了更多人的认可,你的文章给别人带来了帮助。
如果再加上一个文章点赞排行,那么就可以很精准的分析出哪些文章更受用户的欢迎,更了解用户痛点,从而更好的更新出对大家有帮助的文章。
功能丰富的WordPress点赞插件不少,但是因为这么个小功能使用一个插件,有点不太好,也说不上哪里不好,小编就是觉得不好。
所以今天AT互联给大家带来一份wordpress不用插件实现文章点赞、文章点赞排行的wordpress教程。
使用教程
第一步:把下面代码复制到主题的functions.pnp文件内。
// AJAX点赞
function dotGood()
{
global $wpdb, $post;
$id = $_POST[\\\"um_id\\\"];
if ($_POST[\\\"um_action\\\"] == \\\'topTop\\\') {
$specs_raters = get_post_meta($id, \\\'dotGood\\\', true);
$expire = time() + 99999999;
$domain = ($_SERVER[\\\'HTTP_HOST\\\'] != \\\'localhost\\\') ? $_SERVER[\\\'HTTP_HOST\\\'] : false; // make cookies work with localhost
setcookie(\\\'dotGood_\\\' . $id, $id, $expire, \\\'/\\\', $domain, false);
if (!$specs_raters || !is_numeric($specs_raters)) update_post_meta($id, \\\'dotGood\\\', 1);
else update_post_meta($id, \\\'dotGood\\\', ($specs_raters + 1));
echo get_post_meta($id, \\\'dotGood\\\', true);
}
die;
}
add_action(\\\'wp_ajax_nopriv_dotGood\\\', \\\'dotGood\\\');
add_action(\\\'wp_ajax_dotGood\\\', \\\'dotGood\\\');
第二步:把下面代码写进需要添加AJAX点赞的文章页面
<div class=\\\"zan \\\">
<a href=\\\"javascript:;\\\" rel=\\\"external nofollow\\\" data-action=\\\"topTop\\\" data-id=\\\"<?php the_ID(); ?>\\\" class=\\\"dotGood <?php echo isset($_COOKIE[\\\'dotGood_\\\' . $post->ID]) ? \\\'done\\\' : \\\'\\\'; ?>\\\">
<?php echo ($dot_good=get_post_meta($post->ID, \\\'dotGood\\\', true)) ? $dot_good : \\\'0\\\'; ?>人点赞
</a>
</div>
第四部:CSS美化下点赞按钮。(可以根据自己的喜好修改css样式)
.zan {}
.zan a {padding:8px 16px 9px 13px;font-size: 14px;color: #fff;background-color: #fe7f6f;}
.zan a:hover {background-color: #ed1c24}
.zan a:hover {color: #fff}
.zan .count {font-size: 13px;}
.reward {background-color: #f5a754!important}
.zan .done {background-color: #ed1c24!important}
第五部:更新文章页面,看看是不是多了一个点赞的按钮呢?
文章点赞排行
wordpress AJAX点赞功能已经实现了,接下来实现文章点赞排行。
实现原理跟获取最新文章、热门文章大同小异,只添加了\\\’meta_key\\\’ => \\\’dotGood\\\’ 字段
<?php
$args = array(
\\\'ignore_sticky_posts\\\' => 1,
\\\'meta_key\\\' => \\\'dotGood\\\',
\\\'orderby\\\' => \\\'meta_value_num\\\',
\\\'showposts\\\' => 20
);
query_posts($args); if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<a href=\\\"<?php the_permalink(); ?>\\\" rel=\\\"external nofollow\\\" target=\\\"_blank\\\"><?php echo mb_strimwidth(get_the_title(), 0, 46,\\\'…\\\'); ?></a>
<?php endwhile; endif;?>
文章来自AT互联https://www.at8848.cn转载请注明出处,并保留本链接,谢谢!