要在WordPress中使用纯代码实现文章收藏功能,你可以按照以下步骤操作:

  1. 创建自定义插件: 首先,你需要创建一个自定义WordPress插件,以便添加收藏功能。你可以在WordPress文件夹的wpcontent/plugins/目录下创建一个新的文件夹,并在其中创建一个PHP文件,比如favoriteposts.php。

  2. 编写插件代码: 在favoriteposts.php文件中编写插件代码。以下是一个简单的示例:

<?php
/
Plugin Name: 收藏文章
Description: 允许用户收藏文章。
/

// 添加收藏按钮到文章
function add_favorite_button($content) {
    if (is_single()) {
        $post_id = get_the_ID();
        $favorite_link = '<a href="#" datapostid="' . $post_id . '" class="favoritebutton">收藏文章</a>';
        $content .= $favorite_link;
    }
    return $content;
}
add_filter('the_content', 'add_favorite_button');

// 处理收藏操作
function handle_favorite() {
    if (isset($_POST['post_id'])) {
        $post_id = intval($_POST['post_id']);
        $user_id = get_current_user_id();
        // 在这里执行收藏逻辑,比如将文章ID和用户ID存储到数据库中
        // 你也可以使用WordPress的用户元数据来跟踪用户的收藏
    }
    wp_die();
}
add_action('wp_ajax_favorite', 'handle_favorite');
add_action('wp_ajax_nopriv_favorite', 'handle_favorite');

// 添加JavaScript来处理收藏操作
function add_favorite_script() {
    wp_enqueue_script('favoritescript', plugin_dir_url(__FILE__) . 'favorite.js', array('jquery'), '1.0', true);
    wp_localize_script('favoritescript', 'favorite_vars', array(
        'ajax_url' => admin_url('adminajax.php'),
    ));
}
add_action('wp_enqueue_scripts', 'add_favorite_script');
  1. 创建JavaScript文件: 在插件目录下创建一个名为favorite.js的JavaScript文件,用于处理收藏操作。这个文件应该包括代码来处理点击收藏按钮的事件,然后将请求发送到WordPress的后端。
jQuery(document).ready(function($) {
    $('.favoritebutton').on('click', function(e) {
        e.preventDefault();
        var post_id = $(this).data('postid');
        $.ajax({
            type: 'POST',
            url: favorite_vars.ajax_url,
            data: {
                action: 'favorite',
                post_id: post_id,
            },
            success: function(response) {
                alert('文章已收藏!');
            }
        });
    });
});
  1. 激活插件: 登录WordPress后台,转到“插件”页面,然后激活你创建的自定义插件。

这只是一个简单的示例,你可以根据需要扩展它,以便在数据库中跟踪用户的收藏,并添加更多的功能,如显示已收藏文章列表等。不过,这个示例应该帮助你入门如何在WordPress中使用纯代码实现文章收藏功能。