也想出现在这里?联系我们

非插件实现wordpress文章点赞功能

2023.10.24 wordpress教程
  • 文章介绍
  • 升级版本
  • 评价&建议

要在WordPress中实现文章点赞功能,您可以使用自定义代码而不是插件。以下是一种通过添加自定义功能来实现文章点赞的方法:

  1. 打开主题的 functions.php 文件:在您的WordPress主题目录中找到 functions.php 文件,通常位于 wpcontent/themes/yourthemename/ 目录下。在修改之前,请确保备份文件以防出现问题。

  2. 添加以下代码:在 functions.php 文件的末尾添加以下代码:

// 添加点赞按钮到文章
function add_like_button() {
    global $post;
    $post_id = $post>ID;
    $likes = get_post_meta($post_id, 'likes', true);
    $likes = (empty($likes)) ? 0 : $likes;

    // 检查用户是否已经点赞
    $user_has_liked = false;
    $liked_users = get_post_meta($post_id, 'liked_users', true);
    if (is_array($liked_users) && in_array(get_current_user_id(), $liked_users)) {
        $user_has_liked = true;
    }

    // 显示点赞按钮和计数
    echo '<div class="likebutton">';
    echo '<button id="likebutton" datapostid="' . $post_id . '" dataliked="' . $user_has_liked . '">' . ($user_has_liked ? '已赞' : '点赞') . '</button>';
    echo '<span class="likecount">' . $likes . ' 人赞过</span>';
    echo '</div>';
}
add_action('the_content', 'add_like_button');

// 处理点赞的 AJAX 请求
function like_post() {
    if (isset($_POST['post_id'])) {
        $post_id = $_POST['post_id'];
        $user_id = get_current_user_id();

        $liked_users = get_post_meta($post_id, 'liked_users', true);

        if (!$liked_users) {
            $liked_users = array();
        }

        if (!in_array($user_id, $liked_users)) {
            $liked_users[] = $user_id;
            update_post_meta($post_id, 'liked_users', $liked_users);
            $likes = get_post_meta($post_id, 'likes', true);
            $likes;
            update_post_meta($post_id, 'likes', $likes);
        } else {
            echo '已赞';
        }

        echo $likes . ' 人赞过';
    }

    wp_die();
}
add_action('wp_ajax_like_post', 'like_post');
add_action('wp_ajax_nopriv_like_post', 'like_post');

// 引入 JavaScript
function enqueue_like_script() {
    wp_enqueue_script('likescript', get_template_directory_uri() . '/js/like.js', array('jquery'), null, true);
    wp_localize_script('likescript', 'like_obj', array('ajax_url' => admin_url('adminajax.php')));
}
add_action('wp_enqueue_scripts', 'enqueue_like_script');
  1. 创建 JavaScript 文件:在您的主题文件夹中创建一个名为 "like.js" 的 JavaScript 文件,然后添加以下代码:
jQuery(document).ready(function($) {
    $('.likebutton button').on('click', function() {
        var post_id = $(this).data('postid');
        var user_has_liked = $(this).data('liked');
        if (!user_has_liked) {
            $.ajax({
                type: 'POST',
                url: like_obj.ajax_url,
                data: {
                    action: 'like_post',
                    post_id: post_id
                },
                success: function(response) {
                    $('.likebutton button').text('已赞');
                    $('.likecount').html(response);
                    $('.likebutton button').data('liked', true);
                }
            });
        }
    });
});

这段代码将在用户点击“点赞”按钮时触发 AJAX 请求,更新点赞计数和按钮的状态。

  1. 样式调整:您可以根据自己的主题样式进行必要的样式调整,以确保点赞按钮和计数显示在合适的位置。

  2. 保存并刷新您的网站:保存 functions.php 文件和 like.js 文件的更改,并刷新您的WordPress网站。现在,您应该能够看到点赞按钮出现在您的文章中,并且可以通过点击按钮来点赞文章。

请注意,这只是一个简单的点赞功能的示例,您可以根据需要进行定制和扩展。此外,由于直接编辑主题文件可能会对您的主题造成影响,因此在进行任何更改之前,建议备份您的网站。

有用1
  • 2023.10.24初次和大家见面了!

等待您对该主题的建议

发表评论

还能输入240个字

Hi, 欢迎加入Wordpress技术交流群,带你装逼带你飞!

我要入群
也想出现在这里?联系我们
wordpress加速

我来推荐一个更牛逼的给你看看?

  • 猛戳我吧