我怎样才能找到一个文件的‘公共绝对’路径?

时间:2011-07-18 作者:joon

Short Version

我需要给出一个Javascript文件的绝对路径,该文件将被连接到某个对象中。如果我把它硬编码到

\'http://mywebsite.com/folder/script.js\'

然而,我不想硬编码它。我能做到dirname(___FILE___), 这给了我:

“/home/public\\u html/folder/script。js\'

但这样做失败了,脚本没有加载。查找绝对路径(以“http://”开头)的最佳实践是什么?

-

Long Version

在…上this page 在与tinyMCE插件创建相关的Wordpress文档中,我发现:

// Load the TinyMCE plugin : editor_plugin.js (wp2.5)
function add_myplugin_tinymce_plugin($plugin_array) {
   $plugin_array[\'myplugin\'] = URLPATH.\'tinymce/editor_plugin.js\';
   return $plugin_array;
}
底部有一张便条,上面写着:

注意:使用mce\\u external\\u插件过滤器时,url应指向实际的插件文件,如上面的示例所示。

他们说的文档中有点高

mce\\u external\\u plugins:传入/传出一个关联的php数组“plugin\\u name”=>“plugin\\u url”。url应该是绝对的,并且与WordPress安装在同一个域上。

我完全困惑了,因为我找不到关于\'URLPATH\' 这在他们的示例中使用。我不认为它存在于PHP、WP或TinyMCE中,但我可能错了。

顺便提一下,如果这是WP文档中的一个错误,我将用什么来替换URLPATH以使其工作?

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

假设插件中包含您的资源:

  • plugins_url() 是指向的URL\\wp-content\\plugins\\ (Codex ref)\\wp-content\\plugins\\plugin-slug\\file.js:

    <?php echo plugins_url() . \'\\plugin-slug\\file.js\'; ?>

    BUT WAIT!!

    如果您的目的实际上是加载一个javascript文件,那么您实际上希望使用wp_enqueue_script(), 连接到wp_enqueue_scripts

    wp_enqueue_script() 使用文件路径而不是URL,因此您可以使用dirname(___FILE___) 如果这是你喜欢的。

结束

相关推荐