Seb*_*lia 6 media wordpress view restrictions
我正在创建一个wordpress网站,注册用户可以通过前端的wp_editor()创建自己的帖子,但只有一个帖子.
现在我想限制用户只能看到他上传的媒体.我在functions.php中使用以下脚本,它在后端工作.因此,如果用户前往后端的媒体部分,他将只看到他上传的媒体.
但是如果用户在前端wp_editor上进入"插入媒体"弹出窗口,他仍然可以看到来自所有用户的上传媒体.
function restricted_media_view( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false
|| strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
if ( !current_user_can( 'level_5' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'restricted_media_view' );
Run Code Online (Sandbox Code Playgroud)
你有什么想法来解决这个烦恼吗?谢谢!
Joe*_*ing 11
您可以尝试这个插件:http://wordpress.org/extend/plugins/view-own-posts-media-only/
或者试试这个:
add_action('pre_get_posts','ml_restrict_media_library');
function ml_restrict_media_library( $wp_query_obj ) {
global $current_user, $pagenow;
if( !is_a( $current_user, 'WP_User') )
return;
if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' )
return;
if( !current_user_can('manage_media_library') )
$wp_query_obj->set('author', $current_user->ID );
return;
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://wpsnipp.com/index.php/functions-php/restricting-users-to-view-only-media-library-items-they-upload/#comment-810649773
或者自WordPress 3.7以来
add_filter( 'ajax_query_attachments_args', "user_restrict_media_library" );
function user_restrict_media_library( $query ) {
global $current_user;
$query['author'] = $current_user->ID ;
return $query;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我使用 API/Filter Reference/ajax 查询附件参数用于 WP 4.3.1 并且有效
add_filter( 'ajax_query_attachments_args', 'show_current_user_attachments', 10, 1 );
function show_current_user_attachments( $query = array() ) {
$user_id = get_current_user_id();
if( $user_id ) {
$query['author'] = $user_id;
}
return $query;
}
Run Code Online (Sandbox Code Playgroud)
只需添加functions.php
或查看此链接WP Codex
归档时间: |
|
查看次数: |
6148 次 |
最近记录: |