- 2,106 بازدید
- بدون نظر
وردپرس به صورت پیشفرض، به تمامی نویسندگان اجازه دیدن تصاویر موجود در کتابخانه رسانهها یا همان media library را داده است. در صورتی که نویسندگان مهمان زیادی را به سایت خود دعوت کرده باشید، این مساله ممکن است تبدیل به یک مشکل شود. در این مقاله از ایکس اسکریپت به شما نشان خواهیم داد که چگونه دسترسی به تصاویر کتابخانه را در وردپرس خود، محدود کنید.
چرا باید دسترسی به کتابخانهی رسانه را برای نویسندگان سایت محدود کرد؟
همانطور که گفتیم، وردپرس به نویسندگان اجازه میدهد تا به تمامی رسانههای موجود در کتابخانه دسترسی داشته باشند. آنها میتوانند تصاویر و یا هر مدیای آپلود شده توسط مدیر سایت، ویرایشگر و یا دیگر نویسندگان را ببینند.
فرض کنیم که شما در حال طراحی مطلبی هستید که در آیندهای نزدیک، خبر از ارائه محصول و یا ایدهای جدید میدهد. نویسندگان و همینطور نویسندگان مهمان می توانند تمام تصاویری را که برای این مطلب آپلود کردهاید را ببینند.
همچنین آنها امکان اضافه کردن تصاویر آپلود شده توسط شما و یا دیگر نویسندگان را به مطالب خود دارند. در بسیاری از وبسایتها این قضیه مشکل بزرگی به حساب نمیآید. اما اگر سایتی با چندین نویسنده دارید، ممکن است شرایط فرق کند.
در ادامه این مطلب به شما نشان میدهیم که چگونه به آسانی این دسترسی را برای نویسندگان دیگر محدود کنید تا از مشکلات احتمالی آن در امان باشید.
روش اول: محدود کردن دسترسی به کتابخانهی رسانهها با استفاده از افزونه
این روش بسیار آسان بوده و به اکثر کاربران توصیه میکنیم که از این روش برای اعمال محدودیت استفاده نمایند.
اولین کاری که باید انجام دهید، نصب و فعالسازی افزونه ی Restrict Media Library Access است. اگر با نصب و فعالسازی افزونه آشنا نیستید، مقاله، آموزش نصب افزونه وردپرس را بخوانید.
این افزونه خیلی راحت و اتوماتیک کار خود را انجام میدهد و نیازی به تنظیمات خاص برای آن وجود ندارد.
بعد از فعالسازی، افزونه شروع به فیلتر کردن کوئریهای کتابخانه میکند تا ببیند که آیا کاربری که کوئری را فرستاده است مدیر سایت و یا ویرایشگر است یا نه. اگر نقشهای ذکر شده با کوئری مطابقت نداشت، کاربر فقط قادر به دیدن رسانههایی خواهد شد که خودش آپلود کرده است.
همانطور که فهمیدید، کاربرانی با نقشهای مدیر سایت و یا ویرایشگر، همچنان دسترسی لازم برای دیدن تمام رسانهها را در کتابخانه خواهند داشت.
روش دوم: محدود کردن دسترسی به کتابخانهی رسانهها بصورت دستی
روش اول میتواند کاملا کاری که میخواستیم را برای ما انجام دهد و تمام محتویات کتابخانه را بر اساس کاربری که آن را آپلود کرده است فیلتر کند و در نهایت این مدیر سایت و ویرایشگر خواهند بود که به تمامی محتوای کتابخانه دسترسی خواهند داشت.
با این حال، اگر میخواهید تا نقش خاصی را شامل محدودیت کنید و یا اینکه نمیخواهید از افزونه برای اینکار استفاده کنید، میتوانید از روش دوم برای اعمال این محدودیت استفاده نمایید. در این روش از همان تکه کدی که افزونه استفاده میکند، استفاده خواهیم کرد با این تفاوت که میتوانید آن را با توجه به نیاز خود، ویرایش نمایید.
این روش با افزودن تکه کدی به فایلهای وردپرس شما انجام میشود. اگر تاکنون این کار را انجام ندادهاید، لطفا قبل از انجام این کار مقاله مرتبط با اضافه کردن کدها در وردپرس را بخوانید تا مطمئن شوید که به درستی این کار را انجام خواهید داد.
کد نمایش داده شده در پایین را به فایل 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 را دارد و یا خیر. در صورتی که پاسخ منفی بود، کوئری را تغییر میدهد تا بتواند فقط رسانههای آپلود شده توسط خودش را ببیند.
امیدواریم که این مقاله توانسته باشد به شما کمک کند تا محدودیتهایی را که برای دیدن رسانهها لازم میدانید، برای سایت خود اعمال کنید تا آن را هرچه بهتر ایمن کرده باشید. در صورت بروز هرگونه مشکل در فرآیند بالا و یا داشتن سوال مرتبط، با ما از طریق بخش نظرات در ارتباط باشید.