钩子文档

get_canonical_url

💡 云策文档标注

概述

get_canonical_url 是一个 WordPress 过滤器,用于修改文章的规范 URL。它允许开发者通过自定义逻辑覆盖默认的规范 URL 值。

关键要点

  • 过滤器名称:get_canonical_url
  • 参数:$canonical_url(字符串,文章的规范 URL)和 $post(WP_Post 对象,文章对象)
  • 用途:在 wp_get_canonical_url() 函数中调用,用于返回文章的规范 URL
  • 引入版本:WordPress 4.6.0

代码示例

function wpdocs_edit_canonical_urls( $original_url, $post ) {
    $override_url = get_post_meta( $post->ID, 'canonical_url', true );

    if ( empty( $override_url ) ) {
        return $original_url;
    }

    return $override_url;
}

add_filter( 'get_canonical_url', 'wpdocs_edit_canonical_urls', 10, 2 );

📄 原文内容

Filters the canonical URL for a post.

Parameters

$canonical_urlstring
The post’s canonical URL.
$postWP_Post
Post object.

Source

return apply_filters( 'get_canonical_url', $canonical_url, $post );

Changelog

Version Description
4.6.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    An example of using this filter. In this I am setting the canonical url through ACF in a field called ‘canonical_url’.

    function wpdocs_edit_canonical_urls( $original_url, $post ) {
    	$override_url = get_post_meta( $post->ID, 'canonical_url', true );
    
    	if ( empty( $override_url ) ) {
    		return $original_url;
    	}
    
    	return $override_url;
    
    }
    
    add_filter( 'get_canonical_url', 'wpdocs_edit_canonical_urls', 10, 2 );