【问题标题】:How do i locate wordpress plugin directory?如何找到 wordpress 插件目录?
【发布时间】:2015-02-28 16:50:41
【问题描述】:

我正在尝试将插件 1(wp 作业管理器)中的功能添加到插件 2(woocommerce)。

我决定通过包含插件 1 中的 php 文件来执行此操作,但是我无法找到文件目录。我用过:

 include( plugin_dir_path( __FILE__ ) . 'wp-job-manager/includes/class-wp-job-manager-applications.php');

但它返回以下错误:

警告: 包括(/home/content/p3pnexwpnas05_data02/78/2394078/html/wp-content/themes/listify-child/wp-job-manager/includes/class-wp-job-manager-applications.php):无法打开流: 在......中没有该文件或目录 /home/content/p3pnexwpnas05_data02/78/2394078/html/wp-content/themes/listify-child/functions.php 在第 77 行

请告诉我,因为我已经在这个问题上困扰了很长时间......谢谢!

【问题讨论】:

  • 首先你应该问自己为什么要修改这些插件?我不知道你在做什么,但你可能可以同时激活它们并构建第三个插件来连接两者。如果您直接修改其中任何一个,您将无法在不丢失更改的情况下更新它们。

标签: wordpress woocommerce


【解决方案1】:

你的意思可能是:

plugin_dir_path(__FILE__)

这为您提供了该语句所在文件的目录路径。因此返回的内容取决于您运行它的位置。如果你使用这个语句

include( plugin_dir_path(__FILE__) . 'wp-job-manager/includes/class-wp-job-manager-applications.php');

在 wp_job_manager 的主插件文件(可能是 wp_job_manager.php)中,然后plugin_dir_path(__FILE__) 给出该文件所在目录的路径(插件目录)。

如果您在其他文件中使用它,则需要相应地调整路径字符串的其余部分。

【讨论】:

    【解决方案2】:

    Wordpress 设置有一个常量ABSPATH 定义(查看wp_config.php 的底线),它指向Wordpress 设置的完整和绝对路径,因此在您的情况下echo ABSPATH; 将返回/home/content/p3pnexwpnas05_data02/78/2394078/html/

    对于大多数安装,将wp-content/plugins/ 附加到该字符串会将您指向您的插件目录。

    但是,在 Wordpress 配置中,也可以根据自己的喜好自定义 wp-content 和/或插件目录,因此不建议在 ABSPATH.'wp-content/plugins/ 上构建插件。不幸的是,Wordpress 根本没有 get_absolute_pluginspath() 功能或可用的东西。一个技巧是获取 plugins-URL,并从中删除 site-URL,因此剩余的数据是 wp-content/plugins/ (或用户制作的任何内容)。在代码中:

    $plugins_directory = ABSPATH.str_replace(site_url()."/","",plugins_url())."/";
    

    在您的情况下会返回: /home/content/p3pnexwpnas05_data02/78/2394078/html/wp-content/plugins/

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 2014-11-07
      • 1970-01-01
      • 2014-01-13
      • 2014-03-13
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      相关资源
      最近更新 更多