我可以在模板文件中的 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>

然后我可以将我的网站从开发转移到生产并轻松交换它,并在整个网站范围内进行更改(而且它似乎比 &lt;base href="" /&gt; 更可靠。

我正在做一个 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 模板文件

js文件Wordpress中的php

Wordpress:访问存储在主题文件夹中子文件夹中的模板

Wordpress ACF 字段如何从自定义帖子类型中获取选项

我正在编写一个 PHP 函数来搜索 Wordpress 模板文件中的邮政编码数组。为啥我的函数不返回值?

PHP 获取WordPress中的当前页面模板名称