这是我正在使用的代码:
<?php echo str_replace( home_url(), \'\', get_permalink($post->ID) ); ?>
它所做的是将永久链接作为相对URL输出,即仅输出slug。例如,如果permalink是http://example.com/2012/01/post-title/
, 代码输出的相对URL如下所示/2012/01/post-title/
.Problem: 所有的帖子和页面都显示了正确的永久链接,这很好。但所有其他页面(包括主页、搜索和归档)显示的是第一篇文章的相对URL,而不是相应页面的URL。知道为什么吗?我做错了什么?
Reference: Get page permalink without wpurl
<小时>EDIT: 以下是我尝试过的其他方法:
In functions.php
function get_relative_permalink( $url ) {
$url = get_permalink();
return str_replace( home_url(), "", $url );
}
In header.php
<link rel="alternate" hreflang="en-IN" href="http://in.example.com/<?php echo get_relative_permalink(); ?>" />
这也是同样的问题。但这一条也显示了一个信息量不大的错误。