如何获取静态主页的真实永久链接?

时间:2011-10-06 作者:JVC

今天早些时候我问了一个非常类似的问题(http://wordpress.stackexchange.com/questions/30392/how-to-get-the-original-post-id-of-a-static-home-page)我以为我找到了答案,但现在看来不是这样。

如果我有一篇文章/页面的原始永久链接为http://mydomain.com/blog/my-post/ 例如,我将其设置为博客的静态主页,当我访问该页面时,我无法获取该页面的原始永久链接,因为WP只返回根(site_url() 基本上)permalink并将我重定向到那里,因为它现在被设置为主页。

如何检索原始permalink?get_option(\'page_on_front\') 不起作用,因为它只返回博客根url,例如http://mydomain.com/blog/. 我需要获取当前设置的静态主页的完整原始永久链接。

希望这很清楚。。。谢谢大家!

1 个回复
最合适的回答,由SO网友:Jeremy Felt 整理而成

编辑:哇。我第一次打错了一串。希望没有人读到。现在全部更正/编辑

我去了代码探索…:)

简短版本,解决方法如下:

<?php 
    $front_page_id = get_option( \'page_on_front\' );
    $my_permalink = _get_page_link( $front_page_id ); 
?>
如果您查看链接模板。在WordPress内核中,您可以跟踪发生的路径。调用\\u permalink()将导致获取\\u page\\u link(),它将返回传递给它的帖子/页面ID的permalink。但是,get\\u page\\u link()所做的检查之一是查看请求的ID当前是否设置为“page\\u on\\u front”。如果是,则将静态值“/”作为永久链接返回。如果不是,则调用函数\\u get\\u page\\u link()。请注意函数前面的下划线。

为了解决这个问题,我跳过了\\u permalink()和get\\u page\\u link(),直接转到了\\u get\\u page\\u link()。

可能有一些安全问题或原因导致此行为为默认行为,但我不知道,但它是有效的。。。

结束

相关推荐

如果自定义管理页面未挂钩到ADD_OPTIONS_PAGE(),则不会显示设置API已更新消息

一直在使用设置API,发现只有通过add\\u options\\u page()将设置页面连接到WordPress菜单时,才会显示消息(用于成功或错误)。其他任何操作都不起作用,例如add\\u dashboard\\u page()。想知道这是不是真的?我尝试使用的示例代码是包含“RegisteredSettingsTest”类的答案Where to hook register_settings for Settings API when also want to update options out