محدود کردن دسترسی نویسنده به رسانه و تصاویر در وردپرس
وردپرس به صورت پیشفرض، به تمامی نویسندگان اجازه دیدن تصاویر موجود در کتابخانه رسانهها یا همان media library را داده است. در صورتی که نویسندگان مهمان زیادی را به سایت خود دعوت کرده باشید، این مساله ممکن است تبدیل به یک مشکل شود. در این مقاله به شما نشان خواهیم داد که چگونه دسترسی به تصاویر کتابخانه را در وردپرس خود، محدود کنید.
آنچه خواهید خواند:
چرا باید دسترسی به کتابخانهی رسانه را برای نویسندگان سایت محدود کرد؟
همانطور که گفتیم، وردپرس به نویسندگان اجازه میدهد تا به تمامی رسانههای موجود در کتابخانه دسترسی داشته باشند. آنها میتوانند تصاویر و یا هر مدیای آپلود شده توسط مدیر سایت، ویرایشگر و یا دیگر نویسندگان را ببینند.
فرض کنیم که شما در حال طراحی مطلبی هستید که در آیندهای نزدیک، خبر از ارائه محصول و یا ایدهای جدید میدهد. نویسندگان و همینطور نویسندگان مهمان می توانند تمام تصاویری را که برای این مطلب آپلود کردهاید را ببینند.
همچنین آنها امکان اضافه کردن تصاویر آپلود شده توسط شما و یا دیگر نویسندگان را به مطالب خود دارند. در بسیاری از وبسایتها این قضیه مشکل بزرگی به حساب نمیآید. اما اگر سایتی با چندین نویسنده دارید، ممکن است شرایط فرق کند.
در ادامه این مطلب به شما نشان میدهیم که چگونه به آسانی این دسترسی را برای نویسندگان دیگر محدود کنید تا از مشکلات احتمالی آن در امان باشید.
محدود کردن دسترسی به کتابخانهی رسانهها با استفاده از افزونه
در ادامه دو افزونه برای اینکار معرفی میکنیم و به اکثر کاربران توصیه میکنیم که از این روش برای اعمال محدودیت استفاده نمایند.
استفاده از افزونه Restrict Media Library Access
اولین کاری که باید انجام دهید، نصب و فعالسازی افزونه ی Restrict Media Library Access است. اگر با نصب و فعالسازی افزونه آشنا نیستید، مقاله، آموزش نصب افزونه وردپرس را بخوانید.
این افزونه خیلی راحت و اتوماتیک کار خود را انجام میدهد و نیازی به تنظیمات خاص برای آن وجود ندارد.
بعد از فعالسازی، افزونه شروع به فیلتر کردن کوئریهای کتابخانه میکند تا ببیند که آیا کاربری که کوئری را فرستاده است مدیر سایت و یا ویرایشگر است یا نه. اگر نقشهای ذکر شده با کوئری مطابقت نداشت، کاربر فقط قادر به دیدن رسانههایی خواهد شد که خودش آپلود کرده است.
همانطور که فهمیدید، کاربرانی با نقشهای مدیر سایت و یا ویرایشگر، همچنان دسترسی لازم برای دیدن تمام رسانهها را در کتابخانه خواهند داشت.
استفاده از افزونه WP Users Media
ابتدا شما باید افزونه WP Users Media را روی سایت وردپرسی خود نصب کنید. پس از نصب و فعال سازی، این افزونه به طور خودکار دسترسی هر کاربر را به رسانه های آپلود شده خود محدود می کند در حالی که به مدیر سایت امکان مشاهده همه رسانه ها را می دهد.
با اینحال، شما میتوانید تنظیمات افزونه را تغییر داده و به کاربران اجازه دهید تا به همه رسانه های بارگذاری شده دسترسی داشته باشند. به عنوان مثال، ممکن است بخواهید به مسئول سئو سایت اجازه دهید که همه رسانه ها را مشاهده کند در حالی که نویسندگان فقط قادر به مشاهده رسانههای خود هستند.
برای سفارشی سازی تنظیمات افزونه، شما باید به مسیر ” تنظیمات » WP Users Media ” در سایت خود بروید. در ادامه ما میخواهیم دسترسی رسانه های بارگذاری شده توسط کاربران سایت وردپرس را محدود کنیم.
حال برای آزمایش عملکرد افزونه، میتوانید دو کاربر جدید با نقش نویسنده ایجاد کرده و با دسترسی های آنها وارد سایت شوید. سپس با هر کاربر رسانههایی آپلود کنید. متوجه خواهید شد که هر کاربر فقط میتواند رسانههای بارگذاری شده توسط خودش را مشاهده کند ولی مدیر سایت به تمامی رسانه های آپلود شده توسط کاربران دسترسی دارد.
محدود کردن دسترسی به کتابخانهی رسانهها بصورت دستی
روش اول میتواند کاملا کاری که میخواستیم را برای ما انجام دهد و تمام محتویات کتابخانه را بر اساس کاربری که آن را آپلود کرده است فیلتر کند و در نهایت این مدیر سایت و ویرایشگر خواهند بود که به تمامی محتوای کتابخانه دسترسی خواهند داشت.
با این حال، اگر میخواهید تا نقش خاصی را شامل محدودیت کنید و یا اینکه نمیخواهید از افزونه برای اینکار استفاده کنید، میتوانید از روش دوم برای اعمال این محدودیت استفاده نمایید. در این روش از همان تکه کدی که افزونه استفاده میکند، استفاده خواهیم کرد با این تفاوت که میتوانید آن را با توجه به نیاز خود، ویرایش نمایید.
این روش با افزودن تکه کدی به فایلهای وردپرس شما انجام میشود. اگر تاکنون این کار را انجام ندادهاید، لطفا قبل از انجام این کار مقاله مرتبط با اضافه کردن کدها در وردپرس را بخوانید تا مطمئن شوید که به درستی این کار را انجام خواهید داد.
کد نمایش داده شده در پایین را به فایل functions.php و یا site-specific plugin اضافه کنید.
// 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 استفاده میکند تا ببیند که آیا کاربر قابلیت activate_plugins را به همراه edit_others_posts را دارد و یا خیر. در صورتی که پاسخ منفی بود، کوئری را تغییر میدهد تا بتواند فقط رسانههای آپلود شده توسط خودش را ببیند.
امیدواریم که این مقاله توانسته باشد به شما کمک کند تا محدودیتهایی را که برای دیدن رسانهها لازم میدانید، برای سایت خود اعمال کنید تا آن را هرچه بهتر ایمن کرده باشید. در صورت بروز هرگونه مشکل در فرآیند بالا و یا داشتن سوال مرتبط، با ما از طریق بخش نظرات در ارتباط باشید.
سلام و وقت بخیر
چطور می تونم به ویرایشگر این امکان رو بدم که بتونه تمام تصاویر آپلود شده از طریق library رو ببینه و اونا رو ویرایش کنه؟ با افزونه Wp Users Media موفق نشدم، یا اینکه درست بلد نبودم
سلام وقت شما هم بخیر،
برای این مورد بهتره از افزونه هایی مثل User Role Editor کمک بگیرید و دسترسی مورد نظر رو به نقش ویرایشگر اضافه کنید.
اون قطعه کد کار نکرد.
افزونه Restrict Media Library Access که چند ساله آپدیت نشده.
ولی افزونه WP Users Media به خوبی کار کرد. ممنون بابت معرفی این افزونه.
ترکیب افزونه WP Users Media با افزونه user role editor کارمو راه انداخت.
سلام احمد جان بسیار خوشحالیم که کارتون راه افتاده. ممنون که برامون نظر گذاشتین
awli bod
سلام،خوشحالم که راضی بودید 🙂