要在WordPress博客中实现AJAX评论效果,您需要使用JavaScript和PHP来处理AJAX请求。下面是一个简单的步骤,演示如何实现这一功能:

WordPress 博客非插件代码实现AJAX评论效果

  1. 创建一个自定义JavaScript文件:首先,在您的WordPress主题文件夹中创建一个自定义JavaScript文件,例如custom.js。在这个文件中,您将编写处理AJAX请求的JavaScript代码。

  2. 编写JavaScript代码:在custom.js中编写以下JavaScript代码,该代码将处理AJAX评论请求:

jQuery(document).ready(function($) {
    // 监听评论表单的提交事件
    $('#commentform').on('submit', function(e) {
        e.preventDefault(); // 阻止默认的表单提交行为

        // 获取评论表单数据
        var formData = $(this).serialize();

        // 发送AJAX请求
        $.ajax({
            type: 'POST',
            url: ajaxurl, // WordPress提供的AJAX URL
            data: formData  '&action=custom_comment', // 自定义action标识
            success: function(response) {
                // 在成功后执行的代码
                if (response == 'success') {
                    // 如果评论成功,可以执行一些操作,例如刷新评论列表等
                    alert('评论成功!');
                    $('#comment').val(''); // 清空评论框
                } else {
                    // 处理评论失败的情况
                    alert('评论失败,请重试。');
                }
            }
        });
    });
});

在上面的代码中,我们使用了jQuery库来简化AJAX请求的处理。您需要确保WordPress中已经加载了jQuery。

  1. 创建PHP函数:现在,您需要在主题的functions.php文件中添加一个自定义PHP函数,用于处理AJAX请求并添加评论。以下是一个示例:
function custom_comment() {
    // 获取评论数据
    $comment_data = array(
        'comment_author' => $_POST['author'],
        'comment_content' => $_POST['comment'],
        'comment_post_ID' => $_POST['comment_post_ID'],
    );

    // 插入评论
    $comment_id = wp_insert_comment($comment_data);

    if ($comment_id) {
        // 如果评论成功插入,返回成功标识
        echo 'success';
    } else {
        // 如果评论插入失败,返回失败标识
        echo 'error';
    }

    die();
}

// 添加WordPress AJAX动作钩子
add_action('wp_ajax_custom_comment', 'custom_comment');
add_action('wp_ajax_nopriv_custom_comment', 'custom_comment');
  1. 更新评论表单:确保您的评论表单中有适当的字段,如作者名、评论内容等,并且具有与JavaScript代码匹配的字段名称。

  2. 在主题中加载JavaScript文件:最后,在您的主题的functions.php文件中添加以下代码来加载JavaScript文件:

function load_custom_js() {
    wp_enqueue_script('customjs', get_template_directory_uri() . '/custom.js', array('jquery'), '1.0', true);
}
add_action('wp_enqueue_scripts', 'load_custom_js');

现在,当用户在评论表单中提交评论时,将触发AJAX请求,评论将被插入数据库,并且用户将获得适当的成功或失败提示。

请注意,这只是一个简单的示例,您可以根据您的需求对其进行扩展和自定义。此外,确保在WordPress中正确配置jQuery以便使用上述代码。如果您的主题使用自定义评论模板,还需要相应地更新评论模板以显示新评论。