ایجاد محدودیت دسترسی به فایل آپلود شده دیگران و دسترسی به رسانههای خود کاربر آپلود کننده در وردپرس
در ادامه پلاگین نویسی برای وردپرس و مشکلی که برای خودم در یکی از پروژه ها هنگام تعریف نقش کاربری (role) ایجاد شد و رفع شد ، یک آموزش تهیه کردم تا اگر دوستان به مشکل خوردند بتوانند خودشان مشکل را حل کنند ، گاهی نیاز میشود که در وردپرس به کاربران اجازه آپلود فایل میدهیم ، اما با اجازه ture شدن ‘upload_files’ ممکن است تمام فایلهای آپلود شده در رسانه وردپرس به کاربران نمایش داده شود و و نمایش فایل کاربران دیگر سایت به یک کاربر دیگر موجب بروز مشکلات گردد ، در اینجا میتوانید با کمک کد زیر این مشکل را رفع کنید و هر کاربر تنها به فایلهایی که توسط خودش آپلود شده است ، دسترسی خواهد داشت و از دسترسی به فایل دیگران جلوگیری میشود .
1 2 3 4 5 6 7 8 9 |
function idpr_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; } add_filter( 'ajax_query_attachments_args', 'idpr_show_current_user_attachments' ); |
در واقع در این کد هر کاربری که اجازه ویرایش پستهای دیگران را نداشته باشد (‘edit_others_posts’)و نیز نتواند پلاگین فعال کند (‘activate_plugins’) به فایلهای آپلود شده دیگران نیز دسترسی ندارد و فقط میتواند فایلهایی که خودش آپلود کرده است را مشاهده کنید .
محدودیت در آپلود و دسترسی به رسانههای وردپرس
همچنین اگر نیاز به کدنویسی پیشرفته تر برای محدودیت آپلود و دسترسی به فایلهای آپلود شده در وردپرس بودید و یا حتی اگر نتوانستید مشکل را حل کنید با ما تماس بگیرید و اگر سوالی بود در بخش نظرات بپرسید ، خوشحال می شویم کمکتان کنیم.