آموزش نحوه محدود کردن دسترسی کاربران سایت به بخش رسانه وردپرس با استفاده از کد و افزونه های وردپرس رو با هم می خوایم بررسی کنیم. یکی از گزینه هایی که وردپرس را از سایر سیستم مدیریت محتوا های دیگر متمایز می سازد وجود افزونه های بسیاری است که بسیاری از کار ها را برای سایت ما امکان پذیر و بسیار ساده می کند و در واقع تمام نیاز های ما را به راحتی می تواند رفع نماید . ولی باید بدانید که وردپرس مشکلاتی را نیز دارد به طور مثال وردپرس به تمام نویسندگان سایت اجازه می دهد تا همه تصاویر و فایل های آپلودی بخش رسانه سایت را ببینند که این میتواند در بحث امنیت مشکل ساز باشد .
چرا که اگر شما در سایت خود چندین نویسنده را داشته باشید و اگر شما بخواهید از یک محصول جدید رونمایی کنید بدون آن که هیچ یک از نویسندگان یا کاربران شما متوجه آن شوند و مایلید تا اطلاعاتی را از نویسندگان خود نیز پنهان کنید و شما به عنوان یک مدیر تنها کلیه امور را در دست داشته باشید چرا که وردپرس به نویسندگان اجازه میدهد که تمام تصاویر روی کتابخانه رسانه های سایت را مشاهده نمایند توجه داشته باشید این مورد برای سایت های بزرگ که دارای نویسندگان مهمان بسیاری است ممکن است خطر آفرین باشد .
در این مطلب میخوانید:
محدودسازی دسترسی به بخش رسانه با استفاده از افزونه
یکی از راحترین راه ها استفاده از افزونه وردپرس می باشد برای انجام این کار نیز می توان از افزونه کمک گرفت و این روش به تمام کاربران توصیه می شود . این روش با محدود سازی دسترسی کاربران به رسانه در وردپرس براساس نقش کاربران برای تمام سایت ها کار می کند و فقط به دو نقش در سایت از جمله مدیر و ویرایشگر اجازه دسترسی به تمام فایل ها را خواهد داد .
ابتدا افزونه Restrict Media Library Access را نصب و فعال سازی نمایید بعد از فعال سازی این افزونه تنظیمات به طور خودکار در توابع وردپرس برای محدودیت در دسترسی کاربران به رسانه در وردپرس اعمال میشوند و هیچ گزینه تنظیماتی به صفحه کاربری شما افزوده نمیشود .
این افزونه در ابتدا نقش های کاربر ، مدیر و ادیتور را با هم مقایسه می کند اگر کاربر با هیچ یک از نقش های دیگر تطابق نداشته باشد افزونه فقط گالری و فایلهای مربوط به همان کاربر را نشان خواهد داد. توجه داشته باشید که نقش های مدیر و ویرایشگر ، امکان و اجازه دیدن تمام فایل ها و عکس ها را دارا می باشند.
محدودسازی دسترسی به بخش رسانه به صورت دستی
اکر شما مایل باشید که تمام دسترسی ها را سفارش سازی کنید و به نقش خاصی اجازه دسترسی کاربران به تمام فایلها را بدهید و مایلید از افزونه استفاده نکنید باید از روش دستی بهره بگیرید این روش نیز از کد های افزونه استفاده میکند با این تفاوت که در این روش برای برآوردن نیاز های شما امکان تغییر و اصلاح کد وجود دارد.
کد زیر را به فایل function.php سایت خود و یا به بخش site-specific plugin اضافه کنید.
</div> <div><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>add_filter('ajax_query_attachments_args','wpb_show_current_user_attachments');</div> <div>
محدود کردن سطح دسترسی محتویات بخش کتابخانه
در این بخش می خواهیم امکانی را به وجود آوریم که کاربر در بخش کتابخانه ی رسانه های وردپرس تنها آپلود های خود را ببیند و سطح دسترسی آنها را محدود نماییم . وردپرس به همه نویسندگان این اجازه را می دهد تا به راحتی بتوانند فایل های موجود در کتابخانه را مشاهده فرمایند آنها همچنین میتوانند تصاویر آپلود شده توسط مدیر ، ویرایشگر و سایر نویسندگان را ببینند .
برای انجام این کار شما دو روش را در اختیار دارید :
محدودیت دسترسی به کتابخانه با استفاده از پلاگین Restrict Media Library Access
در اول راه باید افزونه ی Restrict Media Library Access را نصب و راه اندازی نمایید این پلاگین بصورت out of box کار میکند و در اینجا تنظیماتی جهت پیکربندی وجود ندارد. بعد از آن که این افزونه فعال شود این پلاگین دستوراتی که به کتابخانه رسانه ها فرستاده میشود را برای کاربران مدیر یا ویرایشگر فیلتر میکند و اگر نقش کار بران به غیر از این دو نقش بود کاربر تنها تصاویر آپلود شده خود را قادر است ببیند و کاربرانی که دارای نقش مدیر یا ویرایشگر هستند می توانند تمام تصاویر را مشاهده فرمایند .
محدودیت دسترسی به کتابخانه به صورت دستی
اگر مایلید از این روش استفاده نمایید باید از کد هایی بهره بگیرید چرا که این روش نیازمند افزودن کد به فایل های وردپرس است کد زیر را به فایل function.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 استفاده میکند و بررسی می کند که آیا کاربر توانایی ویرایش پست های دیگر کاربران را دارا می باشد یا خیر ؟ اگر دارای چنین قابلیتی نباشد این کد، دستور مورد استفاده برای نمایش فایل های رسانه ای را تغییر میدهد و آن را به ID کاربر محدود میکند.
تعیین سطح دسترسی کاربران در وردپرس با افزونه Adminimize
این افزونه را نصب و فعال سازی نمایید سپس گزینه ای با نام Adminimize در بخش تنظیمات اضافه میشود.
شما در این افزونه می توانید لیست کلیه کارهای قابل انجام در وردپرس را مشاهده فرمایید .
تنظیمات دسترسی کاربران
این تنظیمات در بخش نقشهای کاربری سایت شما نمایش داده میشود و امکان دسترسی یا عدم دسترسی وجود دارد.
بخش های انتخاب شده مربوط به لینک هاست و با زدن تیک بخش مربوطه برای آن نقش کاربری غیرفعال میشود لینکی که شامل نام و آدرس است برای تنها کاربران بالای ویرایشگر قابل مشاهده است لازم به ذکر است نقشهای کاربری در سمت بالا و عملیات در سمت راست نمایش داده میشوند .
اولین گزینه Select All می باشد که با زدن این تیک برای همه نقشهای کاربری غیرفعال میشود. شما با این افزونه نیز می توانید امکانات و دسترسی هایی را برای نقش های مختلف در سایت به وجود آورید ولی اگ بخواهید سطح دسترسی به فایل های آپلود شده در سایت یا کتابخانه سایت را محدود کنید بهتر است از روش های بالا استفاده نمایید .