【问题标题】:Can I get a "base URL" in WordPress within a template file?我可以在模板文件中的 WordPress 中获取“基本 URL”吗?
【发布时间】: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,但那是文件系统中的绝对文件路径,而不是来自文档根目录的东西。

【问题讨论】:

    标签: php wordpress base-url


    【解决方案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 的网址

        【解决方案5】:

        您可以使用内置的 wordpress 函数site_url() 检索当前站点的 URL。

        查看site_url了解更多详情。

        前:

        <a href="<?php echo site_url('tom/jones'); ?>">Tom</a>
        

        【讨论】:

          猜你喜欢
          • 2019-12-26
          • 1970-01-01
          • 1970-01-01
          • 2016-05-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-04
          • 2014-04-11
          相关资源
          最近更新 更多