【问题标题】:Wordpress plugin approval standards: ## Calling file locations poorlyWordpress 插件批准标准:## 调用文件位置不佳
【发布时间】:2020-10-02 20:01:23
【问题描述】:

我已向 Wordpress.org 提交了一个小部件并收到了以下指导:

您的插件引用其他文件的方式不起作用 使用 WordPress 的所有设置。

当您在 wp-content 或插件文件夹名称等路径中进行硬编码时, 或者假设每个人都在其域的根目录中拥有 WordPress,您 导致任何人使用“给 WordPress 它自己的目录”(非常 常见的设置)来打破。此外,WordPress 允许用户更改 wp-content 的名称,所以你会破坏任何选择这样做的人 所以。

请查看以下链接并相应地更新您的插件。 并且不用担心支持 WordPress 2.x 或更低版本。我们不 鼓励它,也不要期望你这样做,所以节省一些时间和 能量。

记得使用 FILE 变量,以便比你的 插件在现实世界中正常运行。

插件中的示例:

my-widget/includes/my-widget-scripts.php:6:
wp_enqueue_style('my-widget-main-style', plugins_url(). '/my-widget/css/style.css');
    
my-widget/includes/my-widget-scripts.php:8:
wp_enqueue_script('my-widget-main-script', plugins_url(). '/my-widget/js/main.js');

我已经点击链接并尝试了其中的一些变体,但没有任何东西可以替换我目前拥有的代码(在引用的底部找到)。

我应该用什么来替换它以符合 Wordpress.org 的标准?

【问题讨论】:

  • __DIR__ 怎么样? 'wp_enqueue_style('my-widget-main-style', DIR . '/css/style.css');' 之类的东西?

标签: php wordpress plugins wordpress-theming wordpress-plugin-creation


【解决方案1】:

查看plugins_url() 的文档。第一个参数将 $path 参数附加到 URL。第二个采用插件的完整路径。如果您将__FILE__ Magic Constant 传递给它,它将用于您当前的插件。

您应该利用两个这些论点:

wp_enqueue_style( 'my-widget-main-style', plugins_url( '/css/style.css', __FILE__ );
wp_enqueue_script( 'my-widget-main-script', plugins_url( '/js/main.js', __FILE__ );

【讨论】:

  • 看起来这有它在搜索,但目录从包含文件而不是插件的根目录开始:localhost:XXXXX/wp-content/plugins/my-plugin/includes/css/style.css ?ver=5.5.1
  • 将每个文件夹移动到包含文件夹中,它成功了!但是,我如何才能正确获取根目录,或者这本身就不合适?
  • 抱歉,我错过了行标识符中的/includes。通常包含文件位于根目录中(通常是主插件文件本身)。但如果这对您不起作用,您可以在此处使用答案:stackoverflow.com/questions/11094776/…__FILE__ 拉入当前文件,那里的答案使您能够从那里“上一个目录”。您还可以在主插件文件中为其定义一个变量。无论哪种方式,都取决于最适合您的方式!
【解决方案2】:

这是我的做法:

wp_enqueue_script( 'my-widget-main-style', plugins_url('/js/main.js', __FILE__) );

【讨论】:

    猜你喜欢
    • 2014-12-14
    • 2012-11-22
    • 1970-01-01
    • 2012-09-15
    • 2013-01-23
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多