WordPress中的绝对路径(ABSPATH)不起作用

时间:2014-02-14 作者:Najam-us-Saqib

我目前正在处理一个小任务,将插件信息存储到数据库中,但我在包含具有运行查询功能的文件方面遇到了问题。

以下是包含文件的行:

require_once(ABSPATH . \'wp-admin/includes/upgrade.php\');

但我在运行代码时得到了以下信息:

Warning: require_once(ABSPATHwp-admin/includes/upgrade.php): 无法打开流:中没有此类文件或目录/home/najam/dev/project1/wordpress/wp-admin/admin-insert.php 在…上line 18

我搜索了很多,但没有找到任何有用或有用的东西。

编辑以下是我的代码:

global $wpdb;

$table_name = $wpdb->prefix . \'table_form\';

$sql = "CREATE TABLE $table_name (
  id int(11) NOT NULL AUTO_INCREMENT,
  rows int(11) DEFAULT NULL,
  cols int(11) DEFAULT NULL,
  UNIQUE KEY id (id)
);";

require_once(ABSPATH . \'wp-admin/includes/upgrade.php\');
dbDelta( $sql );`

5 个回复
SO网友:s_ha_dum

insert.php 我自己制作的文件,实际上我是wordpress的新手,我想知道我有没有犯错误?实际上,我想在数据库中存储一个插件表单信息。

你的问题在细节上很简单,但我怀疑你所犯的错误是加载文件的方式与WordPress上下文之外的加载方式相同,或者加载方式只加载WordPress的一部分。

您的问题缺乏细节,几乎完全没有代码的上下文,因此无法提供可靠的答案,但我倾向于建议您需要通过AJAX API (即使不是严格意义上的AJAX)。类似这样:https://wordpress.stackexchange.com/a/108145/21376

如果你想得到更好的答案,you must 写一个更好的问题。请单击问题下方的“编辑”按钮,尽可能多地添加详细信息,但要保持组织有序。

SO网友:user2172846

有一个很好的WordPress函数,可以随时帮助您检查路径上是否缺少“/”。

trailingslashit

您的示例应采用推荐的编写方式:

require_once( trailingslashit( ABSPATH ) . \'wp-admin/includes/upgrade.php\' );

使用此函数,您不必将“/”放在“相对”路径之前,因为此函数确保在缺少“/”的情况下将“/”放在前面。

这就是为什么我们在WordPress中创建了这个函数。

SO网友:Hari Om Gupta

ABSPATH 将工作您需要包括wp加载文件。include \'../../../wp-load.php\';

SO网友:LPH

您不需要/但可以尝试在/wp admin的开头斜杠

require_once( ABSPATH . \'/wp-admin/includes/upgrade.php\' );
但您是否检查了/wp admin/admin insert。php文件是否存在?

是否定义了ABSPATH?添加以下内容以进行检查:

// Is ABSPATH defined?
if ( !defined(\'ABSPATH\') )
die(\'-1\');
另外,您是否正在尝试在不加载WP的情况下运行此操作?另外,您可以尝试site\\u url()并使用它。

SO网友:Svetoslav Marinov

ABSPATH应该已经包含尾部斜杠。您需要包含主插件文件中的升级文件。也许您需要挂接到“plugins\\u-loaded”操作或“init”,然后调用升级方法。

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/