我为自己开发了一个插件,并使用了它一段时间,然后决定公开。但该插件在提交和代码审查后被拒绝,原因是##直接调用核心加载文件。我已经解决了他们提到的所有问题,但现在只有一个困扰我。我有 require_once( ABSPATH.'/wp-admin/includes/upgrade.php' );
在几个地方可以使用 dbDelta(),但是如果我删除 require_once
声明我将无法使用 dbDelta()。您认为第二次代码审查会出现问题吗?有开发者已经开发并发布了他们的插件吗?
最佳答案
简短:
这应该不是问题。
较长答案:dbDelta()
是一个特殊情况的函数,因为定义它的“核心文件”(upgrade.php)并不总是在插件需要时加载。
如果这是一个简单的查询,您可能只需使用 $wpdb
的准备语句。但是,如果 dbDelta() 确实更适合您的需求(听起来确实如此),那么将 require_once
与 一起使用绝对没问题>upgrade.php
,尽管它在技术上是一个核心文件。
看看官方Creating Tables with Plugins codex 页面字面上告诉您继续并以这种方式使用它:
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
推理:
[...] we'll use the dbDelta function in wp-admin/includes/upgrade.php (we'll have to load this file, as it is not loaded by default) [...]
所以,require_once
走开我的 friend !
关于javascript - WordPress 自定义插件发布被拒绝的原因 'Calling core loading files directly',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49375130/