主页/WordPress笔记/博客文章/综合文章/Trackbacks和Pingbacks在WordPress中的什么、为什么和如何操作指南

Trackbacks和Pingbacks在WordPress中的什么、为什么和如何操作指南

写 Bug工程师:

Trackbacks和Pingbacks是WordPress中用于跟踪外部站点更新的一种机制,它们可以帮助用户发现其他网站上关于他们页面的内容更新。下面我将详细解释这两个概念以及如何在WordPress中设置它们。

什么是Trackbacks和Pingbacks?

  • Trackbacks:当一个网站发布了一个链接到另一个网站的帖子或文章时,它会向那个被链接的网站发送一条消息(Trackback)。接收方可以在适当的时候回复这条消息,以表明它已经阅读了这个链接并更新了自己的数据库。

  • Pingbacks:与Trackbacks类似,但更适用于博客园地之间。如果一个博客发表了一篇文章,而另一篇相关文章也发表了评论,那么这两者之间的联系可以通过Pingback来表示。

理由

  • Trackbacks和Pingbacks有助于建立和维护跨站点的连接,使得信息共享更加高效。
  • 它们还可以帮助搜索引擎更好地理解网站内容,因为这些连接可以传递有关特定页面的更多上下文信息。

如何操作指南

  1. 安装插件

    • 在WordPress后台,点击“插件” -> “添加新插件”,搜索并安装“TrackBacks & Pingbacks for WordPress”。安装完成后,激活该插件。
  2. 配置Trackbacks

    • 登录到WordPress管理界面,找到“编辑”菜单下的“设置” -> “TrackBacks & Pingbacks for WordPress”。
    • 填入你的电子邮件地址,以便你可以接收来自其他站点的通知。
  3. 配置Pingbacks

    • 同样,在“设置” -> “TrackBacks & Pingbacks for WordPress”中,输入你的电子邮件地址,这样你就可以接收来自其他站点的ping通知。
  4. 设置自动更新

    • 在插件选项卡下,启用“自动更新”功能,这将确保你的插件始终保持最新状态。
  5. 测试

    • 最后,尝试在一个已启用Trackback和Pingback功能的站点发布一篇文章或者评论,看看是否能够收到相应的通知。

示例代码

假设你想在WordPress中实现Trackback和Pingback的功能,以下是一些基本的代码示例:

// 添加Trackback
add_action('wp_head', 'my_trackback_script');
function my_trackback_script() {
    $post_id = get_the_ID();
    echo '<script type="text/javascript">
        function trackback(url) {
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "https://your-site.com/trackback.php", true);
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    console.log(xhr.responseText);
                }
            };
            xhr.send("url=" + encodeURIComponent(url));
        }

        // 每次保存文章时触发
        add_action('save_post', 'auto_save_trackback', 10, 2);
        function auto_save_trackback(post_id, post) {
            if (isset($_GET['action']) && $_GET['action'] === 'trackback') {
                trackback(get_permalink());
            }
        }
    </script>';
}

// 添加Pingback
add_action('init', 'register_pingback_rules');
function register_pingback_rules() {
    register_nav_menu('pingbacks', __('Pingbacks'));
}

这段代码会在文章保存时自动调用trackback()函数,同时注册一个导航菜单供用户选择是否允许pingback。

请注意,实际部署时可能需要根据具体需求调整代码,并确保所有URL和端口正确无误。

黑板IDE教书匠:

讲解

什么是 Trackbacks 和 Pingbacks?

Trackbacks 是一种评论回帖机制,允许博客作者跟踪来自其他网站的评论。当某条评论被提交到一个网站时,该网站会自动发送一条消息(即“trackback”)到另一个网站,请求其确认该条评论的存在。这样做的好处是,如果某个评论没有被正确地添加到源网站上,那么在目标网站上的评论将会显示为无效。

Pingbacks 是另一种评论回帖机制,与 Trackbacks 类似,但用于通知其他网站关于新发布的文章或更新。当一个网站发布新的文章后,它将向所有已连接到该网站的其他网站发送 pingback 消息。

为什么需要 Trackbacks 和 Pingbacks?

  1. 确保评论一致性:通过使用 Trackbacks 或 Pingbacks,可以确保评论在不同网站之间保持一致。
  2. 增加搜索引擎友好性:搜索引擎通常会追踪并索引带有 Trackbacks 或 Pingbacks 的页面。
  3. 提高用户体验:允许用户轻松查看他们发表的评论是否已被其他用户看到,增加了互动性和参与感。

如何操作 Trackbacks 和 Pingbacks?

使用 WordPress

要设置 Trackbacks 和 Pingbacks,请按照以下步骤操作:

  1. 在 WordPress 主题的 functions.php 文件中,找到并编辑 add_action('comment_post', 'trackback_link') 函数:

    add_action( 'comment_post', 'trackback_link' );
    function trackback_link() {
       if (isset($_POST['comment_form_submit']) && !is_admin()) {
           $post_id = $_POST['comment_post_ID'];
           $url = get_permalink($post_id);
           wp_redirect(get_bloginfo('wpurl').$url.'/?action=trackback');
           exit;
       }
    }
  2. 设置 Trackback URL。例如,如果你希望 Trackback 链接指向 /trackback/,则应修改如下行:

    $url = get_permalink($post_id);

    更改为:

    $url = get_permalink($post_id).'/?action=trackback';
  3. 更新主题文件以启用 Pingback 功能:

    add_theme_support( 'pingback' );
  4. <head> 标签内添加 Pingback 链接。这通常位于 header.php 文件中的 <head> 标签之前:

    <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
  5. 添加必要的样式和 JavaScript 以便在页面加载时显示 Trackback 和 Pingback 链接:

    $(document).ready(function(){
      $('#comments').after('<a class="trackback-link" href="#">Trackback</a>');
      $('#comments').after('<a class="pingback-link" href="#">Pingback</a>');
    });
  6. 更新主题文件以显示 Trackback 和 Pingback 链接。例如,在 functions.php 中添加以下代码:

    add_filter( 'the_title', 'my_custom_title' );
    function my_custom_title($title) {
       $title .= '<br><span class="trackback">Trackback: <a href="'.get_pingback_url().'" target="_blank">'.get_pingback_url().'</a></span>';
       return $title;
    }
  7. 在评论表单中添加 Trackback 和 Pingback 按钮。例如,在 comments.php 文件中添加以下代码:

    <?php comments_template('', true); ?>
    <form method="post">
       <input type="hidden" name="comment_author" value="<?php echo esc_attr(get_current_user_id()); ?>">
       <textarea id="comment-textarea" name="comment_text"></textarea>
       <input type="text" name="author_email" value="" placeholder="Your email address...">
       <div class="submit">
          <button type="submit"><?php _e('Submit Comment'); ?></button>
          <?php submit_button(); ?>
       </div>
    </form>
    
    <!-- Trackback and Pingback links -->
    <ul class="trackback-pingback-links">
       <li><?php comment_trackback(); ?></li>
       <li><?php comment_pingback(); ?></li>
    </ul>
  8. 如果使用了第三方评论插件,可能需要相应地调整这些设置。

总结

Trackbacks 和 Pingbacks 提供了一种简单而高效的方法来跟踪评论并在不同网站之间共享信息。通过遵循上述步骤,你可以轻松设置它们,并确保评论的一致性和搜索引擎优化。