در آموزش چگونه در سایت وردپرس خود پست مهمان بپذیریم ؟ یاد گرفتیم که چگونه در سایت وردپرس خود این امکان را فراهم کنیم تا بازدید کنندگان سایت ما برای سایت ما پست مهمان ارسال کنند و از این طریق وبلاگ و یا سایت خیلی پویا تری را داشته باشیم. اما مشکلی که خیلی از وبمسترها و وبلاگ نویسان بعد از خواندن آن نوشته و استفاده از آن در سایت خود به آن بر خوردند این بود که کاربران سایت آن ها در پیشخوان وردپرس در هنگام ارسال یک نوشته جدید نمی توانستند در نوشته های خود اقدام به آپلود تصویر و دیگر فایل های چند رسانه ای بکنند و این امر باعث می شود که کاربران نتوانند به راحتی در سایت ما اقدام به ارسال نوشته های جدید بکنند. در این آموزش از تورتک با هم یاد می گیریم که چگونه این محدودیت در وردپرس را نیز برطرف کنیم و با استفاده از این سیستم قوی به سایت خود امکان دریافت پست مهمان از طرف بازدید کنندگان را اضافه کنیم.


مشکل آپلود در وردپرس برای کاربران از کجا است ؟

همانطور که می دانید ما برای اینکه قبل از انتشار عمومی نوشته های ارسال شده به سایت توسط کاربران ، بتوانیم نگاهی به آن ها بکنیم و همچنین در صورتی که نیاز به ویرایش داشته باشند آن ها را ویرایش کنیم در قسمت نقش پیش‌فرض کاربر تازه که از طریق پیشخوان وردپرس > تنظیمات > همگانی قابل دسترس است گزینه مشارکت‌کننده ( Contributor ) را انتخاب می کنیم که این امر باعث می‌شود که کاربرانی که تازه در سایت ما برای ارسال پست مهمان عضو شده‌اند در سیستم وردپرس به عنوان یک کاربر مشارکت کننده شناخته شوند و مجوزهای دستری خاص این نوع کاربری برای آن ها اعمال می‌شود.

در سیستم وردپرس به صورت پیش فرض برای هر نوع از کاربران دسترسی ها و مجوزهای خاصی وجود دارد که در مطلب جدول نقش کاربر در وردپرس با آن ها آشنا شده ایم و در این جدول کاربران مشارکت کننده امکان آپلود فایل جدید را ندارند و به همین دلیل است که کاربران سایت ما در هنگام ارسال نوشته به سایت نمی توانند از امکان بارگذاری/گذاشتن در بالای ویرایشگر متن وردپرس برای آپلود تصاویر مورد نظر در نوشته های خود استفاده کنند.


چگونگی حل مشکل آپلود تصویر برای کاربران در وردپرس

برای حل این مشکل در وردپرس می توانید از افزونه های مختلفی که برای ویرایش جدول دسترسی کاربران در وردپرس ساخته شده است استفاده کنید که با جستجوی کوچکی در منبع افزونه های وردپرس با صدها نوع از این افزونه ها روبرو می شوید. اما تمامی این افزونه ها برای تغییرات در جدول دسترسی و مجوز کاربری وردپرس از هک وردپرس و ترفندهای ساده ای استفاده می کنند و بهتر است که خود با کمی کد نویسی این امکان را به سایت خود اضافه کنیم و از استفاده بی مورد از این افزونه ها خودداری کنیم اگر مشکل ما تنها ایجاد امکان آپلود تصاویر برای کاربران مشارکت کننده است. برای این کار تنها کافی است تکه کد زیر را به آخر فایل functions.php که در شاخه پوسته وردپرس شما موجود است اضافه کنید.
کد:
<?php if ( current_user_can('contributor') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_upload_user');
 
function allow_upload_user() {
$var1 = get_role('contributor');
$var1->add_cap('upload_files');
} ?>
در صورتی که در شاخه پوسته سایت وردپرسی خود ( مسیر wp-content/themes/name-theme ) وجود نداشت می توانید فایل جدیدی با این نام در این شاخه ایجاد کنید و سپس کدهای بالا را به آن اضافه کنید. توجه داشته باشید که در کدهای بالا تنها با استفاده از یک قلاب ( Hook ) که وظیفه آن اضافه کردن و یا ویرایش مقادیری در ساختار کلی بخش های وردپرس است امکان آپلود تصاویر را به کاربران مشارکت کننده در وردپرس داده ایم که البته این کار با استفاده از تابع add_action در صورتی که کاربر یک مشارکت کننده بود و یا اینکه امکان آپلود تصویر را نداشت انجام می شود.


آپلود در وردپرس توسط کاربران امنیت سایت را به خطر می اندازد ؟

همیشه اضافه کردن امکانات بیشتر و تعیین مجوزهای دسترسی برای آزاد تر برای کاربران عمومی سایت مشکلاتی را برای سایت های مختلف ایجاد کرده است اما خوشحالیم بگوییم به این دلیل که شما از وردپرس برای راه اندازی و انتشار سایت خود استفاده می کنید ارائه این امکان به کاربران سایت خود توسط وردپرس هیچگونه خطر امنیتی را برای سایت شما به همراه ندارد و همانطور که می بینید خود سایت تورتک نیز این امکان را در سایت خود برای کاربرانی که قصد ارسال پست مهمان را دارند در دسترس گذاشته است.

اگر می خواهید دلیل این امر را بدانید باید بگوییم که قسمت آپلود وردپرس که از طریق دکمه افزودن پرونده‌های چند‌رسانه‌ای در بالای ویرایشگر متن وردپرس قابل دسترس است با استفاده از ترفندهای گوناگونی کاملاً امن شده است و کاربران سایت شما نمی توانند هیچگونه حرکت مخربی را با استفاده از آن در سایت شما بکنند. تنها در صورتی که شما از هاست با فضای ذخیره سازی بسیار محدودی استفاده می کنید ممکن است مایل نباشید که کاربران سایت شما بتوانند برای استفاده از تصاویر در نوشته های خود و یا دیگر پروندهای چند رسانه ای مانند فایل های صوتی و یا کتاب های الکترونیک PDF ، در سایت شما امکان آپلود را نداشته باشند.


تغییر اندازه حداکثر حجم فایل ها در هنگام آپلود در وردپرس

یکی دیگر از مشکلاتی که شاید در هنگام آپلود فایل در وردپرس به آن بر خورده باشید این است که در هنگامی که کاربران و یا خود شما قصد داشته‌اید که یک فایل مثلاً PDF را که حجم بیشتر از 30 مگابایت داشته است را آپلود کنید با پیغام خطا روبرو شده اید و موفق به انجام این کار نشده اید. برای رفع محدودیت 30 مگابایتی آپلود در وردپرس خیلی ساده می توانید با قرار دادن کدهای زیر در فایل .htaccess که در شاخه اصلی ( root ) هاست خود می توانید آن را پیدا کنید مقدار حداکثر حجم فایل ها در هنگام آپلود را تغییر دهید.

کد:
php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value memory_limit 50M
تنها کافی است بجای 50M در کدهای بالا حداکثر حجم فایل های قایل آپلود در سایت وردپرسی خود را وارد کنید. از این ترفند همچنین می توانید در صورتی که هاست شما فضای ذخیره سازی کمی را دارد استفاده کنید تا مثلاً به کاربران اجازه ندهید تا فایل های سنگین را در سایت شما آپلود کنند.

منبع : امکان آپلود تصویر برای کاربر مشارکت کننده در وردپرس