如何为当前用户加载媒体库中的附件?

时间:2017-06-06 作者:ClodClod91

我正在使用(media library) 在我的前端主题中。

是否可以只加载当前用户记录的附件?例如,我的wp用户id是55,不同的用户只加载我的附件而不加载其他附件?

没有关于js如何在WP中工作的文档。。。

2 个回复
最合适的回答,由SO网友:filipecsweb 整理而成

如果您只想在通过AJAX加载附件时过滤附件,例如,在设置帖子特色图像时,可以使用:


function filter_get_the_user_attachments( $query ) {

    $current_user = wp_get_current_user();

    if ( !$current_user ) {
        return;
    }

    $current_user_id = $current_user->ID;

    $query[\'author__in\'] = array(
        $current_user_id
    );

    return $query;

};

add_filter( \'ajax_query_attachments_args\', \'filter_get_the_user_attachments\', 10 );

与上一个答案中的片段类似,但速度更快。

此外,如果您需要筛选上载时加载的附件。您可以使用的php页面:


function action_get_the_user_attachments( $query ) {

    // If we are not seeing the backend we quit.
    if ( !is_admin() ) {
        return;
    }

    /**
     * If it\'s not a main query type we quit.
     *
     * @link    https://codex.wordpress.org/Function_Reference/is_main_query
     */
    if ( !$query->is_main_query() ) {
        return;
    }

    $current_screen = get_current_screen();

    $current_screen_id = $current_screen->id;

    // If it\'s not the upload page we quit.
    if ( $current_screen_id != \'upload\' ) {
        return;
    }

    $current_user = wp_get_current_user();

    $current_user_id = $current_user->ID;

    $author__in = array(
        $current_user_id
    );

    $query->set( \'author__in\', $author__in );

}

add_action( \'pre_get_posts\', \'action_get_the_user_attachments\', 10 );

希望这有帮助。

SO网友:Sam

您可以将以下内容添加到自定义插件或主题函数中。php文件

/////////////////////////////////////////////////////////////
// Show only users their attachments
//////////////////////////////////////////////////////////////
add_filter( \'ajax_query_attachments_args\', \'show_current_user_attachments\' );

function show_current_user_attachments( $query ) {
    // Global var to grab user and what role they have
    global $current_user;
    wp_get_current_user();

 // Check the user role so only these roles can see all attachments 
 if(current_user_can(\'administrator\')|| current_user_can(\'Some other role\') )
 {
    // If we are the above user roles we can see all the query
    return $query;
 }
 else
 {
    // Check current user ID
    $user_id = get_current_user_id();

    // Grab the user ID and query only the users uploaded items
    if ( $user_id ) {
        $query[\'author\'] = $user_id;
    }
    // Return users only attachements
    return $query;
 }

}

结束

相关推荐

Setting the uploads directory

所以我想更改我的上传目录。我可以通过以下方式进行更改:add_filter( \'pre_option_upload_url_path\', \'wpse_77960_upload_url\' ); function wpse_77960_upload_url() { return \'http://subdomain.example.com/files\'; } 或update_option(\'upload_url_path\', \'/wp-content/up