wp_get_canonical_url

函数
wp_get_canonical_url ( $post = null )
参数
  • (int|WP_Post) $post Optional. Post ID or object. Default is global `$post`.
    Required:
    Default: null
返回值
  • (string|false) The canonical URL. False if the post does not exist or has not been published yet.
定义位置
相关方法
wp_admin_canonical_urlwp_nonce_urlwp_get_original_image_urlrel_canonicalwp_widget_control
引入
4.6.0
弃用
-

wp_get_canonical_url: 这个函数检索当前页面的标准URL。它不接受任何参数,并返回一个包含标准URL的字符串。

返回一个文章的标准URL。

当该文章与当前请求的页面相同时,该函数也将处理分页参数。

function wp_get_canonical_url( $post = null ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return false;
	}

	if ( 'publish' !== $post->post_status ) {
		return false;
	}

	$canonical_url = get_permalink( $post );

	// If a canonical is being generated for the current page, make sure it has pagination if needed.
	if ( get_queried_object_id() === $post->ID ) {
		$page = get_query_var( 'page', 0 );
		if ( $page >= 2 ) {
			if ( ! get_option( 'permalink_structure' ) ) {
				$canonical_url = add_query_arg( 'page', $page, $canonical_url );
			} else {
				$canonical_url = trailingslashit( $canonical_url ) . user_trailingslashit( $page, 'single_paged' );
			}
		}

		$cpage = get_query_var( 'cpage', 0 );
		if ( $cpage ) {
			$canonical_url = get_comments_pagenum_link( $cpage );
		}
	}

	/**
	 * Filters the canonical URL for a post.
	 *
	 * @since 4.6.0
	 *
	 * @param string  $canonical_url The post's canonical URL.
	 * @param WP_Post $post          Post object.
	 */
	return apply_filters( 'get_canonical_url', $canonical_url, $post );
}

常见问题

FAQs
查看更多 >