Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress-私人上传文件夹_Php_Wordpress_Security_Private - Fatal编程技术网

Php Wordpress-私人上传文件夹

Php Wordpress-私人上传文件夹,php,wordpress,security,private,Php,Wordpress,Security,Private,我正在创建一个wp插件,它几乎就像一个crm系统 我希望wordpress后端的注册用户能够上传文件(pdf、doc、png),并将这些文件附加到他们的客户记录中 我了解如何在数据库和如何上传文件等方面做到这一点 我想限制访问文件的管理员或上传用户只。任何公共用户或其他用户都不能访问这些上载的文件 您是否会为非公用文件夹中的每个用户创建一个新的上载文件夹,并仅通过插件以编程方式检查凭据来访问该文件 有没有一种已知的或更好的方法可以做到这一点 /* ========================

我正在创建一个wp插件,它几乎就像一个crm系统

我希望wordpress后端的注册用户能够上传文件(pdf、doc、png),并将这些文件附加到他们的客户记录中

我了解如何在数据库和如何上传文件等方面做到这一点

我想限制访问文件的管理员或上传用户只。任何公共用户或其他用户都不能访问这些上载的文件

您是否会为非公用文件夹中的每个用户创建一个新的上载文件夹,并仅通过插件以编程方式检查凭据来访问该文件

有没有一种已知的或更好的方法可以做到这一点

/* ===============================================
* RESTRICT - SHOW ONLY OWN ATTACHMENTS
=================================================*/

add_filter( 'posts_where', 'o99_attachments_wpquery_where' );

function o99_attachments_wpquery_where( $where ){
    global $current_user;

    if( is_user_logged_in() ){
        // we spreken over een ingelogde user
        if( isset( $_POST['action'] ) ){
            // library query
            if( $_POST['action'] == 'query-attachments'  && !current_user_can( 'level_10' )  ){ // o99 add optional user_can. remove if not needed
                $where .= ' AND post_author='.$current_user->data->ID;
            }
        }
    }

    return $where;
}
注意-这是一个示例,需要根据您的需要进行微调

还要记住,
posts\u where
过滤器非常强大,它可以修改查询。如果不需要,请小心使用并拆下滤清器