روش جدید و تضمینی افزایش حجم آپلود وردپرس

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
سلام .

اول این رو بگم که این روش از همه روش های بهتر و راحت تره ولی چون میخواستم کامل توضیح بدم یکم تاپیک طولانی شده وگرنه خیلی ساده هست .

تا الان سه روش واسه افزایش حجم آپلود تو سایتها وجود داشت که یکیش از طریق فانکشن بود که جواب نمیداد . یکیش هم از طریق php.ini بود که اونم معمولا تو هاستهای اشتراکی گم و گور بود . آخری که خوب جواب میداد از روش .htaccess بود که واقعا جواب میداد . اما بعضی افزونه ها مثل yoast و ... هر چند وقت به چند وقت یه تغییراتی تو htaccess میدن که دوباره روز از نو روزی از نو .

اما یه روش جدید بهتون یاد میدم که نیازی نیست وارد هاست بشین و خوبیش اینه که بر خلاف روش htaccess که اگه حجم رو خیلی زیاد میذاشتین آخرش تا 1 یا 2 گیگ بیشتر نمیشد با روش زیر میشه بیشتر گذاشت .

خب کافیه فقط کد زیر رو توی functions.php قالب کپی کنین و بجای 262144000 مقدار بایت رو بنویسین که این عدد نوشته شده معادل 250 مگابایت هست .


کد:
add_filter( 'upload_size_limit', 'HANNANStd_increase_upload' );

function HANNANStd_increase_upload( $bytes )
{
    return 262144000; 

}
البته حواستون باشه که کد بالا باید داخل


کد:
<?php

?>
باشه.

در ضمن اگه تو تبدیل مگابایت به بایت مشکل دارین فکر اونجاشم کردم .

از لینک زیر برای تبدیل واحدهای بایتی استفاده کنین



-----------------------------------------------------------------------------------------------------------------------------------------------------------------

بروز رسانی این تاپیک :

خب دوستانی که کار با functions.php براشون سخته کار از اینی هم که دیدین ساده تر شد . چون دوست عزیزمون جناب mahdiy لطف کردن و مراحل بالا رو به صورت پلاگین در آوردن .

یعنی فقط کافیه پلاگین زیر رو نصب کنین و به قسمت تنظیمات > حجم مجاز آپلود برین و حجم مجاز مورد نظرتون رو وارد کنین . تمام .


کد:
http://up.persianscript.ir/uploads/52da-wp-change-upload-size.zip
اما اگه دنبال کاملتر کردن کد بالا هستین یعنی اگه میخواین برای هر نقش کاربری و یا کاربر بخصوصی حجم خاصی رو اختصاص بدین پست های پایینی رو هم بخونین .

 
آخرین ویرایش توسط مدیر:

hannanstd.ir

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

اون دیگه راحت ترین حالت ممکن میشه :دی

 

MahdiY

راهبر انجمن
عالی بودبهترین و راحت ترین روشه
اگه واقعا میخواهید تشکر کنید کلید لایک و تشکر هست

اگه میخواهید اسپم بدید جنبه اش فرق میکنه

در صورت تکرار بدون تذکر برخورد می شود ...

 

MahdiY

راهبر انجمن
بفرمایید

شرمنده خیلی وقت بود افزونه وی پی ننوشته بودم زیاد حرفه ای نشد



تو تنظیمات / حجم مجاز آپلود

پیشفرض 250 مگابایت هست

مقدار دلخواه خود را وارد کنید ذخیره و تمام!

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
درسته افزونه اش رو نوشتین .

اما منم چون تازه شروع کردم به افزونه نویسی دلم میخواست خودم هم بتونم بنویسمش .

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

کد فرم رو پایین میزارم ولی مشکلش اینکه بعد از سابمیت میره تو options.php ولی من میخوام برگرده تو

options-general.php?page=HANNANStd-Upload-FileSize-Control که بوده .


کد:
<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>

<table width="510">
<tr valign="top">
<th width="92" scope="row">Enter Your MB</th>
<td width="406">
<input name="HANNANStd_Upload_FileSize_Control_data" type="text" id="HANNANStd_Upload_FileSize_Control_data"
value="<?php echo get_option('HANNANStd_Upload_FileSize_Control_data'); ?>" />
(Just Number)</td>
</tr>
</table>

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="HANNANStd_Upload_FileSize_Control_data" />

<p>
<input type="submit" value="<?php _e('Save Changes') ?>" />
</p>

</form>
</div>
 
آخرین ویرایش توسط مدیر:

MahdiY

راهبر انجمن
کافیه بجای


کد:
action="options.php"
از کد زیر استفاده کنید


کد:
action="#"
کد دومی همه جا جواب میده و نتیجه را بر میگردونه به همون صفحه

سعی کنید افزونه را با جدول ننویسید کلا با جدول طراحی نکنید

امیدوارم در این راه موفق باشی

 

MahdiY

راهبر انجمن
یه نکته ای که فراموش کردم بگم اینکه

دوستان عزیز بخاطر این مسائل کوچیک که میشه از یه کد ساده استفاده کرد از نصب افزونه خودداری کنند

وگزنه پس از مدتی واقعا سرعت سایت بصورت چشمگیری پایین میاد

سعی کنید خودتونم هم اگه بلد نیستید تو انجمن درخواست بدید

دوستان در حد گذاشتن یه کد همیاری میکنند

موفق و پیروز باشید

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
میگم تاپیک رو بیا یکم حرفه ای تر کنیم که جامعتر بشه .

پس بهتره این پست و پست پایینشو خوب بخونین .

خب دوستان شاید شما بخواین واسه هر کدوم از گروه های کاربری یه حجم خاصی رو اختصاص بدین . یعنی مثلا برای مدیر 100 مگابایت . برای ویرایشگر 70 مگابایت و برای نویسنده 28 مگابایت و ...

خب میتونین از کد زیر بجای کد بالا استفاده کنین . و هر چقد که خواستین گروه کاربری داخلش مشخص کنین . برای مثال من به گروه کاربری مدیر 104857600 بایت یعنی 100 مگابایت اختصاص دادم و به گروه کاربری نویسنده 29360128 بایت یعنی 28 مگابایت اختصاص دادم پس بقیه گروه کاربری حجمشون میشه صفر مگر اینکه توسط


کد:
if( current_user_can('گروه کاربری')
براش حجم مشخص کنین .

کد زیر که کامله موضوع رو بهتر براتون روشن میکنه


کد:
add_filter( 'upload_size_limit', 'HANNANStd_increase_upload' );
function HANNANStd_increase_upload( $bytes ) {


if( current_user_can('administrator') ) {   return 104857600; } 
if( current_user_can('author') ) {   return 29360128; } 


}
کد بالا برای هر کدوم از گروه کاربری مدیر (administrator) و گروه کاربری نویسنده (author) یک حجم خاصی رو اختصاص میده .

خب اگه در پیدا کردن گروه کاربری مشکل دارین یعنی از کجا بفهمین که مثلا کد مدیر میشه administrator .

خب کافیه به قسمت کاربران >> همه کاربران وردپرس برین و تصویری شبیه تصویر زیر مشاهده میکنین : (روی تصویر کلیک کنین تا اندازه واقعی بیاد)

You must be registered for see images attach


خب مثلا تو اون تصویر بالا گروه های کاربری ای رو که کاربری توش وجود داره رو نشون میده . مثلا تو تصویر بالا سه تا گروه کاربری داریم : مدیر ؛ نویسنده ؛ مدیر ارشد .

حالا شما میخواین ببینین که مثلا کد جایگزین گروه کاربری نویسنده چیه ؟ کافیه روی نویسنده کلیک راست کنین و open in new tab رو بزنین حالا تو آدرس بار یه همچین چیزی میبینین :



عبارت رو بروی role همون نقش گروه کاربریه که میتونین تو کد


کد:
if( current_user_can('author') ) {   return 29360128; }
ازش استفاده کنین و بجای عدد رو به روی return بایت مورد نظرتون برای نویسنده رو بنویسین .

خب تو پست زیری بهتون یاد میدم چطور برای کاربرای بخصوصی هم بتونین حجم جدا مشخص کنین . مثلا طرف جز گروه کاربری نویسنده هست که بهش 28 مگابایت دادین ولی خب چون رفیقتونه میخواین بهش حال بدین و حجمشو بکنین 100 مگابایت . پس پست پایینی رو دنبال کنین .

 
آخرین ویرایش توسط مدیر:

hannanstd.ir

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


کد:
add_filter( 'upload_size_limit', 'HANNANStd_increase_upload' );
function HANNANStd_increase_upload( $bytes ) {
$user_id = get_current_user_id();



if ($user_id == 3) { return 67108864; } 
if ($user_id == 10) { return 78643200; }


if( current_user_can('administrator') ) {   return 104857600; } 
if( current_user_can('author') ) {   return 29360128; } 


}
این نکته رو بگم که هر کاربری که تو سایت هست یک آیدی (id) خاص و منحصر به فرد خودشو داره . پس من در کد بالا به کاربر با آیدی 3 ؛ 64 مگابایت یعنی 67108864 بایت و به کاربر با آیدی 10 ، 75 مگابایت یعنی 78643200 بایت اختصاص میدم و کاری هم ندارم تو کدوم گروه کاربری هستن یعنی همونطور که تو پست بالا توضیح دادم میخوام اگه تو گروهی هست که مثلا همه اون گروه x مگابایت هستن فلان کاربر y مگابایت باشه .

خب کد بالا به قدری واضح هست که گیری روش نداشته باشین و تنها گیری که الان میتونی داشته باشین اینه که آیدی رو از کجا پیدا کنیم ؟

اونم توضیح میدم . البته دقت کنین که کد های مربوط به کاربر خاص رو بالاتر از گروه کاربری قرار بدین . دقیقا مثل کدی که بالا براتون گذاشتم .

بازم به قسمت کاربران >> همه کاربران برین . خب لیست همه کاربراتون رو مشاهده میکنین .

روی کاربر مورد نظر برین و باز هم روش کلیک راست کنین و open in new tab رو بزنین .

حالا در صفحه جدید تو آدرس بار یه همچین آدرسی میبین :


کد:
http://arshad98.ir/wp-admin/user-edit.php?user_id=3&wp_http_referer=%2Fwp-admin%2Fusers.php
خب یه قسمت تو آدرس بار هست که نوشته user_id=3 پس یعنی این کاربر آیدیش 3 هست .

خب سعی کردم تو این تاپیک کامل توضیح بدم (در حد مقاله ISI :p ) تا مبتدی ها هم بتونن بفهمنش و تمامی نیاز های شما ها رو در نظر گرفتم و پس از بالا تا پایین همه تاپیک رو دنبال کنین تا پیوستگی مطالب دستتون بیاد

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

 
آخرین ویرایش توسط مدیر:

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
بروز رسانی در تاریخ 4 مهر 94 :

این روش جواب نمیده ... .فقط به ظاهر عدد حجم رو زیاد نشون میده ولی در اصل زیاد نمیکنه ...

بهترین روش تیکت به هاست هست که دوستمون گفتن .

 

Rodarvasi

تازه وارد
سلام دوستان و اساتید عزیز

سوالی دارم که ذهن من رو درگیر خودش کرده و هیچ جا بخش مرتبطی جز اینجا واسش پیدا نکردم ... لطفا من رو بی پاسخ نزارید

''

چجور میتونم قابلیتی به پرونده های چند رسانه ایی وردپرس اضافه کنم تا عکس ها رو از طریق لینک آپلود کنه؟

الان اگه من بخوام یه عکس بزارم توش ؛ اول باید عکس رو توی کامپیوتر ذخیره کنم بعد عکس رو توی پرونده چندرسانه ایی آپلود کنم

به عبارت دیگه :::: من میخوام لینک عکس از یه سایت دیگه که به .jpg ختم میشه ؛ بدم به پرونده های چندرسانه ایی وردپرس و وردپرس اون رو توی خودش ذخیره کنه !!!
 

Rodarvasi

تازه وارد
دوستان کسی نظری ... راهنمایی ... چیزی نداره به ما بگه ؟

سلام دوستان و اساتید عزیز

سوالی دارم که ذهن من رو درگیر خودش کرده و هیچ جا بخش مرتبطی جز اینجا واسش پیدا نکردم ... لطفا من رو بی پاسخ نزارید


''

چجور میتونم قابلیتی به پرونده های چند رسانه ایی وردپرس اضافه کنم تا عکس ها رو از طریق لینک آپلود کنه؟

الان اگه من بخوام یه عکس بزارم توش ؛ اول باید عکس رو توی کامپیوتر ذخیره کنم بعد عکس رو توی پرونده چندرسانه ایی آپلود کنم

به عبارت دیگه :::: من میخوام لینک عکس از یه سایت دیگه که به .jpg ختم میشه ؛ بدم به پرونده های چندرسانه ایی وردپرس و وردپرس اون رو توی خودش ذخیره کنه !!!
 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
دوست عزیز همونجا که پنجره باز میشه که شما بخوای یه فایل رو انتخاب کنی لینکش رو وارد کن . البته میره تو temp ویندوز :

4d68-Untitled.png


 

Rodarvasi

تازه وارد
دوست عزیز همونجا که پنجره باز میشه که شما بخوای یه فایل رو انتخاب کنی لینکش رو وارد کن . البته میره تو temp ویندوز :

4d68-Untitled.png
ممنونم بابت پاسختون

یعنی در نهایت از کامپیوتر وارد وردپرس میشه .. درسته ؟

کاش هک یا کدی بود واسه اینکار ....

باز هم ممنونم

 
بالا