我可以在模板文件中的 WordPress 中获取“基本 URL”吗?
Posted
技术标签:
【中文标题】我可以在模板文件中的 WordPress 中获取“基本 URL”吗?【英文标题】:Can I get a "base URL" in WordPress within a template file? 【发布时间】:2011-02-20 08:36:02 【问题描述】:通常在我的 php 应用程序中,我有一个 基本 URL 设置,所以我可以做这样的事情
<a href="<?php echo BASE_URL; ?>tom/jones">Tom</a>
然后我可以将我的网站从开发转移到生产并轻松交换它,并在整个网站范围内进行更改(而且它似乎比 <base href="" />
更可靠。
我正在做一个 WordPress 主题,我想知道,WordPress 是否内置了类似的东西,还是我需要重新定义自己的?
我可以看到ABSPATH
,但那是文件系统中的绝对文件路径,而不是来自文档根目录的东西。
【问题讨论】:
【参考方案1】:是的,您可以像这样使用get_bloginfo('url')
或定义一个常量...
define('BASE_URL', get_bloginfo('url'));
如果您正在处理模板并且想要该主题文件夹的 URL 片段,请使用...
bloginfo('template_directory');
【讨论】:
【参考方案2】:get_bloginfo('wpurl');
将是获取 WordPress 安装的基本 URL 的首选方法。这始终返回安装的绝对基本 URL,其中 get_bloginfo('url');
是您的 WordPress 安装的实际博客地址。
【讨论】:
在 wordpress 3.5.1 我不得不把 bloginfo('url'); - 没有“get_” get_bloginfo() 返回 url 而 bloginfo() 将输出 url。所以 echo get_bloginfo('url') ?> 与 bloginfo('url') ?> @Sy Holloway 实际上,我发现我得到了不同的输出。 bloginfo() 似乎输出了一个实际的基础,在我的例子中是“localhost”,而 get_bloginfo 输出的是站点基础,“localhost/directory”。【参考方案3】:是的,您可以通过一个简单的函数获取“基本 URL”。
<?php echo get_bloginfo('url') ?>
之后使用/
,您只需输入页面名称即可访问任何页面。
【讨论】:
【参考方案4】:你可以试试
<?php echo home_url(); ?>
通过使用它可以获得像 www.xyz.com 这样的站点 url
<?php echo home_url('/contact'); ?>
通过使用此语法,您将获得类似 www.xyz.com/contact 的网址
【讨论】:
文档:developer.wordpress.org/reference/functions/home_url【参考方案5】:您可以使用内置的 wordpress 函数site_url()
检索当前站点的 URL。
查看site_url了解更多详情。
前:
<a href="<?php echo site_url('tom/jones'); ?>">Tom</a>
【讨论】:
以上是关于我可以在模板文件中的 WordPress 中获取“基本 URL”吗?的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress ACF 字段如何从自定义帖子类型中获取选项