plugin_dir_path(__ FILE__)和__DIR__之间的区别

Ven*_*kat 3 php wordpress

斜杠“ /”是这两者之间的唯一区别吗?如果可以,我可以使用trailingslashit(__DIR__)吗?

Raj*_*our 11

plugin_dir_url(__FILE__)此函数为您提供文件目录的url

plugin_dir_url(__DIR__)此功能为您提供url插件文件夹。

__FILE__这个神奇的常量会给你文件所在文件的路径

__DIR__这个神奇的常量会给你文件所在目录的路径

trailingslashit(__DIR__)该函数将返回路径目录的路径后的目录,并添加词shash的。

plugin_dir_path(__FILE__). 会给你相同的结果trailingslashit(__DIR__)。我建议使用插件目录路径,因为它是一种 wordpress 方式。


ros*_*.dk 7

让我们来了解一下正在发生的事情:

wordpress 的功能就这么简单:

function plugin_dir_path( $file ) {
    return trailingslashit( dirname( $file ) );
}
Run Code Online (Sandbox Code Playgroud)

所以,

include plugin_dir_path(__FILE__) . 'xx.php';
Run Code Online (Sandbox Code Playgroud)

等于

include trailingslashit( dirname( __FILE__ ) ) . 'xx.php';
Run Code Online (Sandbox Code Playgroud)

在 PHP 5.3 中,__DIR__引入它作为dirname( __FILE__ ). 如果你不需要支持 PHP < 5.3(你不需要),它可以简化为:

include trailingslashit( __DIR__ ) . 'xx.php';
Run Code Online (Sandbox Code Playgroud)

(另请参阅:Is there any Difference between __DIR__ and dirname(__FILE__) in PHP?

由于__DIR__不返回带有尾部斜杠的内容,因此无需执行此trailingslashit操作。所以我们可以进一步简化为:

include __DIR__ . '/xx.php';
Run Code Online (Sandbox Code Playgroud)

因此,总而言之,以下几行都执行完全相同的操作(在 PHP >= 5.3 上):

include plugin_dir_path(__FILE__) . 'xx.php';
include trailingslashit( dirname( __FILE__ ) ) . 'xx.php';
include trailingslashit( __DIR__ ) . 'xx.php';
include __DIR__ . '/xx.php';
Run Code Online (Sandbox Code Playgroud)

哪个最好?我更喜欢最后一张。您不必输入太多内容,噪音也更少,而且您不必担心该plugin_dir_path函数内部有什么魔力。这就是通常在 PHP 中包含文件的方式。有些牧师可能会说你应该用 WordPress 的方式来做。做一个叛逆者!


Shi*_*ana 6

  1. plugin_dir_path(__FILE__)返回指向当前文件的服务器文件系统目录路径,即类似于

/ home / www / your_site / wp-content / plugins / your-plugin / includes /

这可用于加载PHP文件。

更多信息:https : //developer.wordpress.org/reference/functions/plugin_dir_path/

  1. plugins_url()返回当前WordPress安装程序的plugin文件夹的网址,即类似于

http://example.com/wp-content/plugins

更多信息:https : //codex.wordpress.org/Function_Reference/plugins_url

  1. plugin_dir_url()的行为与plugins_url()非常相似。它还返回一个网址,但后跟斜杠,即

http://example.com/wp-content/plugins/

后两个对加载图像,样式表和JS非常有用。

更多信息:https : //codex.wordpress.org/Function_Reference/plugin_dir_url