如何根据wordpress指南在插件中调用wp-load.php。

时间:2018-07-09 14:39:31

标签: php wordpress

我在插件中包含了wp-load.php文件。它在本地WordPress环境中运行良好。当我将插件提交审查时,他们要求将核心文件作为函数调用。他们已通过邮件发送的邮件下方。

  

直接调用核心加载文件

     

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

     

由于并非所有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加载为函数而不是我使用的方法?我现在需要做哪些更改才能获得批准??

1 个答案:

答案 0 :(得分:0)

注册插件并激活后,便可以使用所有WP核心功能,因此无需加载wp-load.php

加载此文件通常用于想要拥有一个独立文件的情况,该文件可以通过调用/访问其URL(而不是作为插件)直接访问