【问题标题】:Better way to path a file using require()使用 require() 路径文件的更好方法
【发布时间】:2012-07-14 10:23:54
【问题描述】:
require( dirname(dirname(dirname(dirname(dirname(dirname(dirname( __FILE__ ))))))).'/wp-load.php' );

这是我目前使用的代码。 代码位于名为 config.php 的文件中

这是结构:

wordpress\wp-content\themes\\plugins\shortcodes-ultimate\lib\config.php

我需要访问 "wordpress/wp-load.php" 。

get_bloginfo() 在 config.php 中不起作用 我怎样才能以更简单的方式包含它?

【问题讨论】:

    标签: php include require-once


    【解决方案1】:

    怎么了

    require("../../../../../../wp-load.php");
    

    ?

    而且,您的意思是让您的插件位于主题中吗?

    【讨论】:

    • 谢谢,这正是我想要的。我已经尝试过了,但永远无法弄清楚如何计算链接中“../”的数量,是的,我需要包含该插件,因为我不想要求每个用户手动安装它。跨度>
    【解决方案2】:

    wordpress 的完整路径添加到脚本早期某个位置的包含路径中,然后我们为您的所有包含添加“短”版本:

    set_include_path("/path/to/wordpress" . DIRECTORY_SEPERATOR . get_include_path());
    ...
    require("wp-load.php");
    

    请注意,您还应该检查路径,看看它是否符合您的预期。 wordpress 目录已经在您的路径中的某个位置并且问题是领先的/ 的可能性很小(即请记住,路径"/wp-load.php""wp-load.php" 不同非常

    还要注意“/path/to/wordpress”也可以是相对的。

    【讨论】:

      【解决方案3】:

      我做了一些事情来获得找到 wp-load.php 所需的 ../ 的数量(至少如果您的代码在 wp-content 中):

      $current = preg_split('/\//', preg_split('/wp-content/', getcwd())[1]);
      $line = '';
      foreach($current as $dots) {
          $line .='../';
      }
      require($line.'wp-load.php');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-03
        • 2016-04-23
        • 2017-03-25
        相关资源
        最近更新 更多