如何根据WordPress指南在插件中调用WP-LOAD.php



我在插件中包含wp-load.php文件。它在本地WordPress环境中工作正常。当我提交插件以供审查时,他们要求将核心文件作为一个函数调用。他们在邮件中发送的以下消息。

直接调用核心加载文件

包括wp-config.php,wp-blog-header.php,wp-load.php或几乎任何其他WordPress核心文件,你必须通过包含直接调用是不允许的。

这些调用容易失败,因为并非所有WordPress安装都具有完全相同的文件结构。此外,它还为您的插件打开了安全问题,因为WordPress很容易被欺骗以未经身份验证的方式运行代码。

代码应始终存在于函数中,并由操作挂钩调用。即使你需要代码存在于WordPress之外,这也是正确的。代码应仅供登录和授权的人员访问(如果需要这种访问权限(。您的插件页面应该像所有其他设置面板一样通过仪表板调用,这样,它们将始终可以访问 WordPress 功能。

如果需要由外部服务直接访问"页面",则应使用query_vars和/或重写规则来创建调用函数的虚拟页面。

我认为我使用的代码下面可能是问题所在。

require_once('../../../wp-load.php'); 
$apikey = sanitize_text_field( $_POST['apikey'] );
$appid = sanitize_text_field( $_POST['appid'] );
$ulr = esc_url_raw( $_POST['ulr'] );
global $wpdb;
$wpdb->update( 
'wp_table', 
array( 
'apikey' => $apikey,        // string
'appid' => $appid,
'ulr' => $ulr   
), 
array( 'id' => '1' ), 
array( 
'%s',       // value1
'%s',
'%s'    
), 
array( '%d' ) 
);

为什么需要加载 wp-load.php 作为一个函数而不是作为我使用的方法???我现在需要执行哪些更改才能获得批准???

一旦您注册了插件并激活了它,它就可以使用所有 WP 核心功能,因此无需加载 wp-load.php

加载此文件通常在您想要拥有一个独立文件时使用,您可以通过调用/访问其 URL(而不是作为插件(直接访问

最新更新