WP插件中的可爱文件浏览器-wp_get_current_user错误

时间:2019-06-25 11:58:18

标签: javascript php wordpress

我仍在尝试将可爱文件浏览器用于WP插件:解决所有问题后,我用wp_get_current_user砸了头。

该插件由main.php制成:

add_shortcode("lace", "lace_shortcode");
function lace_shortcode(){

        $html_code= '
        <div class="filemanager">

          <div class="search">
            <input type="search" placeholder="Ricerca un file.." />
          </div>

          <div class="breadcrumbs"></div>

          <ul class="data"></ul>

          <div class="nothingfound">
            <div class="nofiles"></div>
            <span>Nessun file trovato.</span>
          </div>

        </div>';
        wp_enqueue_script('script');
      return $html_code;
}

调用script.js:

(function($){ $(document).ready(function(){ 

    var filemanager = $('.filemanager'),
        breadcrumbs = $('.breadcrumbs'),
        fileList = filemanager.find('.data');

    const SCANPHP_DIR = ("http://localhost/www.website.it/wp-content/plugins/lace/scan.php");

    // Start by fetching the file data from scan.php with an AJAX request

    $.get(SCANPHP_DIR, function(data) {

谁使用了scan.php中的信息:

function scan($dir){

    $files = array();
    /$user = 'administrator';

    // Is there actually such a folder/file?

    if(file_exists($dir)){

        foreach(scandir($dir) as $f) {

            //if admin, see al folders/files, otherwise just user folders/files
            if ($user!='administrator'){
                if($f != $user){
                    continue;
                }
            } [...]

我需要检索当前的WP用户才能正确执行插件,但是问题来了。 我可以正确使用$ current_user = wp_get_current_user();进入简码,但我不知道如何在scan.php中执行此操作:如果尝试使用相同的方式,则无法执行,可能是因为scan.php是在wordpress初始化之前加载的。

1 个答案:

答案 0 :(得分:0)

您无法访问scan.php内的wordpress函数,因为此文件作为通过ajax调用的独立文件而工作。

如果要使用wordpress函数,则需要以正确的方式调用ajax。

检查此链接: https://codex.wordpress.org/AJAX_in_Plugins