不使用get_permalink()
. 该函数用于循环内部,仅用于获取到帖子的链接。它不适用于分类归档、日期归档、搜索结果或最新帖子页面。
通常,您可以使用home_url()
与…结合$wp->request
:
global $wp;
echo home_url( $wp->request );
这是因为
home_url()
从数据库获取网站URL,而
$wp->request
保存当前请求的路径,该路径将是页面的slug、归档的日期等。
普通永久链接的问题是它们不使用请求路径,因为这需要标准。htaccess设置。相反,WordPress使用查询字符串来确定要加载的内容。
因此,您需要做的是获取当前查询变量并将这些变量附加到URL。谢天谢地,这些也可以在$wp
, 具体为$wp->query_vars
. 这是一个变量和值的数组,因此可以将其直接传递给add_query_arg();
:
global $wp;
echo add_query_arg( $wp->query_vars, home_url() );