Если вы хотите добавить пользовательскую роль пользователя или просто не хотите использовать плагин, вы можете попробовать этот метод вместо этого. Вы сможете изменить его в соответствии со своими потребностями.
Вам необходимо добавить следующий код в файл WordPress functions.php или плагин для сайта.
// Limit media library access
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );
function wpb_show_current_user_attachments( $query ) {
$user_id = get_current_user_id();
if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
') ) {
$query['author'] = $user_id;
}
return $query;
}
Этот код использует функцию current_user_can, чтобы проверить, имеет ли пользователь возможность активировать плагины или редактировать сообщения других пользователей. Если они этого не делают, то он изменяет запрос, используемый для отображения мультимедийных файлов, и ограничивает его идентификатором пользователя.
Также для защиты хотлинкинга изображений вы можете использовать его в своем .htaccess
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Этот код позволяет отображать изображения только в том случае, если запрос исходит от yourdomain.com или Google.com. Не забудьте заменить yourdomain.com собственным доменным именем.