📜  在 wordpress 中,如何在评论后重定向回引用页面? (1)

📅  最后修改于: 2023-12-03 15:37:33.858000             🧑  作者: Mango

在 WordPress 中,如何在评论后重定向回引用页面?

在 WordPress 中,用户可以在文章页面下方的评论区域发表评论。然而,默认情况下,用户在提交评论后会被重定向到 WordPress 博客的首页,而不是文章页面上。

在本教程中,我们将介绍如何通过代码实现在评论后重定向回引用页面的功能,以提高用户的交互体验。

步骤
第一步:打开 functions.php 文件

首先,我们需要打开 WordPress 主题的 functions.php 文件。该文件位于 WordPress 主题文件夹中,可以通过 WordPress 后台的外观->编辑器中进行编辑。建议在本地编辑器中进行编辑,以便提高效率并避免出错。

第二步:添加代码

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

add_filter('comment_post_redirect', 'redirect_after_comment');

function redirect_after_comment($location)
{
    global $wpdb;

    if(isset($_SERVER['HTTP_REFERER'])) {
        parse_str($_SERVER['HTTP_REFERER'], $referer);

        if(isset($referer['redirect_to'])) {
            $location = $referer['redirect_to'];
        } elseif(isset($_POST['redirect_to'])) {
            $location = $_POST['redirect_to'];
        } else {
            $location = get_permalink();
        }
    }
    return $location;
}

代码解读:

首先,我们使用 add_filter 函数添加了一个名为 comment_post_redirect 的过滤器。该过滤器会在评论提交后被调用,以便对评论提交过程进行定制化处理。

其次,我们定义了一个名为 redirect_after_comment 的函数,用于处理评论提交后的重定向目标地址。

在 redirect_after_comment 函数中,我们首先使用全局变量 $wpdb 获取 WordPress 数据库实例。

接着,我们判断用户是否来自文章页面或评论页面,若是,则将用户的重定向目标地址设为当前页面(即评论后的页面)。

否则,我们将用户的重定向目标地址设为跳转目标参数 $_POST['redirect_to'] 或 $_SERVER['HTTP_REFERER'] 中的重定向目标地址,若不存在则重定向到当前页面。

最后,我们通过 return 语句返回用户的重定向目标地址。

第三步:测试代码

我们已经完成了在 WordPress 中实现在评论后重定向回引用页面的功能的编码,现在我们需要测试代码的效果是否如预期。

访问 WordPress 博客并发表一条评论。在评论提交后,您将被重定向回评论页面而非 WordPress 博客首页,以提高用户体验。

结论

在 WordPress 主题的 functions.php 文件中添加代码,可以使在 WordPress 中发表评论后自动重定向回引用页面,从而提高用户体验。