函数文档

rel_canonical()

💡 云策文档标注

概述

rel_canonical() 函数用于在 WordPress 中为单篇文章查询输出 rel=canonical 链接标签,以指定规范 URL,帮助搜索引擎优化和避免重复内容问题。

关键要点

  • 函数仅在 is_singular() 返回 true 时执行,即当前查询为单篇文章(包括文章、附件、页面或自定义文章类型)。
  • 通过 get_queried_object_id() 获取当前查询对象的 ID,如果 ID 为 0 则直接返回。
  • 使用 wp_get_canonical_url() 获取规范 URL,并通过 esc_url() 清理后输出 HTML 链接标签。
  • 此函数自 WordPress 2.9.0 引入,并在 4.6.0 版本中调整为使用 wp_get_canonical_url()。

代码示例

function rel_canonical() {
    if ( ! is_singular() ) {
        return;
    }

    $id = get_queried_object_id();

    if ( 0 === $id ) {
        return;
    }

    $url = wp_get_canonical_url( $id );

    if ( ! empty( $url ) ) {
        echo '<link rel="canonical" href="' . esc_url( $url ) . '" />' . "n";
    }
}

注意事项

  • 确保在主题或插件中正确调用此函数,通常通过 wp_head 钩子自动执行。
  • 如果自定义查询或特殊情况需要,开发者可以覆盖或修改此函数的行为。

📄 原文内容

Outputs rel=canonical for singular queries.

Source

function rel_canonical() {
	if ( ! is_singular() ) {
		return;
	}

	$id = get_queried_object_id();

	if ( 0 === $id ) {
		return;
	}

	$url = wp_get_canonical_url( $id );

	if ( ! empty( $url ) ) {
		echo '<link rel="canonical" href="' . esc_url( $url ) . '" />' . "n";
	}
}

Changelog

Version Description
4.6.0 Adjusted to use wp_get_canonical_url().
2.9.0 Introduced.