如果我的permalink结构设置为/blog/%postname%/
, 如何检索网站的URLdomain.com/blog/
?
使用上述permalink结构时site_url();
, 它显示domain.com/
当我想轻松获得网站的URL时,包括前台。
也许我不清楚“前线基地”到底是什么。
我的印象是,前基座是你的“永久性结构”。(存储在选项中permalink_structure
)
我试过了home_url();
和site_url();
... 两个输出仅domain.com/
我在考虑使用site_url();
然后检索选项permalink_structure
, 自己解析选项的内容,然后将其附加到site_url();
作用
$permalink_structure = get_option(\'permalink_structure\');
$front_base = preg_replace(\'#(\\%)(.*)(\\%/)#si\', \'\', $permalink_structure);
echo site_url($front_base, \'http\').PHP_EOL;
有没有一种更简单的方法来获取包含前台的网站URL?
最合适的回答,由SO网友:Milo 整理而成
您可以获得front
在全球范围内$wp_rewrite
:
global $wp_rewrite;
echo $wp_rewrite->front;
// or
echo home_url( $wp_rewrite->front );
虽然这可能是有限的使用,因为前面的基础不一定是现有的页面,在许多情况下可能是404。如果您使用该值作为其他URL的前缀,那么很可能是做错了。
如果希望将页面指定为posts页面,则该值存储在page_for_posts
选项:
echo get_permalink( get_option( \'page_for_posts\' ) );