آموزش بهینه سازی افزونه فرم تماس Contact Form 7
برگه تماس را میتوان به عنوان یکی از مهمترین و اصلیترین برگههای یک سایت یا وبلاگ معرفی کرد چرا که حتی با وجود مطالب پرمحتوا، در صورت عدم وجود داشتن برگه تماس برای برقراری ارتباط بین کاربران با شما ساختار سایت یا وبلاگ شما از نظر طراحی و سئو دچار مشکل است.
در سیستم مدیریت محتوای وردپرس نیز روشهای گوناگونی برای ایجاد برگه تماس وجود دارد که یکی از معمولترینِ این روشها استفاده از افزونههای تماس وردپرس میباشد که بیشک و بدون تردید قدرتمندترین و کاربر پسندترین این افزونهها، افزونهی Contact Form 7 است که بیشترین تعداد دانلود در مخزن وردپرس را در بین افزونههای تماس به خود اختصاص داده است که شما به کمک این افزونه میتوانید صفحات تماس و فرمهای تماس با قابلیتهای فراوان را آماده کنید.
همانطور که میدانید این افزونه نیز همانند سایر افزونههای تماس وردپرس برای نمایش و عملکرد صحیح نیاز به فراخوانی فایلهای جاوا اسکریپت و استایل دارد که این فایلها به حجم خروجی تمام برگههای سایت شما اضافه خواهد شد که به دلیل دریافت کردن این فایلها توسط مرورگر، زمان بیشتری برای بارگزاری کامل سایت نیاز است که این امر موجب حجیمتر شدن خروجی صفحات و بیشتر شدن زمان بارگذاری خواهد شد.
در این نوشته از وبلاگ ماندگار وب آموزشی را برای دوستانی که از این افزونه تماس استفاده میکنند آماده نمودهایم که به کمک این آموزش میتوانید فایلهای جاوا اسکریپت و استایل مورد نیاز این افزونه را تنها در صفحاتی که برای ساخت فرم از این افزونه استفاده شده است فراخوانی کنید و در نهایت علاوه بر کم کردن حجم خروجی به سرعت بارگذاری سایت خود نیز کمک کنید. بهینه سازی افزونه Contact Form 7 به دو روش امکانپذیر میباشد که در این نوشته هر دو روش را برای شما دوستان عزیز شرح خواهیم داد و شما میتوانید یکی از این روشها را برای بهینه کردن افزونه تماس وردپرس انتخاب کنید.
در روش اول که پیشنهاد نویسنده افزونه Contact Form 7 میباشد در روت هاست وردپرس و مسیری که وردپرس را در آنجا نصب نمودهاید فایل wp-config.php را برای ویرایش باز میکنید (خواهشمندیم از تمامی فایلهایی که در این نوشته برای ویرایش معرفی میشوند نسخه پشتیبان تهیه نمایید) و دستور زیر را در محل مناسبی از این فایل قرار میدهید:
define('WPCF7_LOAD_JS', false);
define('WPCF7_LOAD_CSS', false);
چنانچه آشنایی کافی با ویرایش فایلها ندارید میتوانید دستور را بعد از خط زیر قرار داده و پس از تغییرات فایل را ذخیره کنید:
define('WP_DEBUG', false);
دستور بالا مانع فراخوان شدن فایلهای استایل و جاوا اسکریپت افزونه Contact Form 7 میشود که در قدم دوم شما باید فایل page.php پوسته وردپرس خود را برای ویرایش باز کنید و دستور شرطی زیر را به ابتدای این فایل اضافه کرده و تغییرات را ذخیره کنید:
<?php
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
wpcf7_enqueue_styles();
}
?>
با اضافه شدن دستور فوق، فایلهای جاوا اسکریپت و استایل افزونه Contact Form 7 تنها در برگههای سایت شما به نمایش در خواهند آمد.
در روش دوم که پیشنهاد گروه ماندگار وب میباشد نیازی به ویرایش فایلهای اصلی هسته وردپرس نبوده و برخلاف روش اول فایلهای جاوا اسکریپت و استایل تنها و تنها در صفحاتی که از افزونه تماس در آنها استفاده شده است فراخوان خواهند شد که برای استفاده از این روش تنها کافیست فایل فانکشن قالب وردپرس خود را برای ویرایش باز کرده و دستور زیر را در محل مناسبی از این فایل قرار دهید:
add_action( 'wp_print_scripts', 'deregister_cf7_javascript', 100 );
function deregister_cf7_javascript() {
if ( !is_page(array(8,10)) ) {
wp_deregister_script( 'contact-form-7' );
}
}
add_action( 'wp_print_styles', 'deregister_cf7_styles', 100 );
function deregister_cf7_styles() {
if ( !is_page(array(8,10)) ) {
wp_deregister_style( 'contact-form-7' );
}
}
در دستور فوق برای نمونه برگههایی با آیدی 8 و 10 در کد قرار داده شدهاند که بدین ترتیب فایلهای جاوا اسکریپت و استایل افزونه Contact Form 7 تنها در این برگهها فراخوان خواهد شد که شما برای عملکرد صحیح کد میبایست آیدی برگههای خود را که از افزونه تماس در آنها استفاده شده است جایگزین آیدی پیشفرض کد کنید که پس از ذخیرهی تغییرات متوجه خواهید شد فایلهای خروجی این افزونه تنها در برگههایی که شما آیدی آنها را مشخص کرده اید فراخوان خواهند شد.
دیدگاهها در "آموزش بهینه سازی افزونه فرم تماس Contact Form 7"
دیدگاه خود را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.
بسیار عالی و مفید
ممنون
خواهش میکنم میکائیل عزیز
ممنون
مفید بود
خواهش میکنم رضا جان
عالی بو مرسی
خواهش میکنم میلاد جان
عالی بود امیرجان اتفاقا من به خاطر همین لود شدن الکی style و java مربوط به این افزونه ازش استفاده نیمکردم و از یه افزونه تماس الکی دیگه استفاده میکردم که داد همه کاربرا رو در آورده بود . دیگه میرم نصبش میکنم 😀
🙂
خواهش میکنم رضا جان
درسته من هم برای تماس از فایل کامنت استفاده کردم تا خروجی برگه ها تو کمترین حجم بمونه ولی اگه به افزونه های تماس نیازی باشه این افزونه واقعا” قدرتمند و اصولی نوشته شده و نمیشه ازش گذشت
موفق باشی عزیزم
سلام
خواستم از طریق این پست یه خسته نباشید بهتون بگم.
انشالله موفق باشید و کارتون رو ادامه بدید
سلام
ممنون ساسان عزیز انشالله با حمایت های شما دوستان بهترین های وردپرس رو به اشتراک بگذاریم
موفق باشید {گل}
با سلام.واقعا آموزشی مفید بود.
ولی من یک سوال داشتم و آن هم اینکه فایل استایل این افزونه کجا هست تا بشه ویرایشش کرد.در قسمت ویرایش افزونه اصلا فایل css ندارد و همه ی آنها حاح isjkn.
میشه یه مطلبی در این مورد بنویسید
سلام خواهش میکنم
تا اونجایی که خاطرم هست دو فایل استایل در مسیر اصلی افزونه وجود داشت
میتونید تغییرات مربوط به استایل رو در آخر فایل استایل قالب خودتون ایجاد کنید
موفق باشید
سلام خسته نباشید. من این کار رو انجام دادم و تاثیر هم داشت ولی باز هم سایت gtmetrix فایل styles-rtl.css رو میگه Inline small CSS کن چیکار باید بکنم؟اگه میشه کمی زودتر جواب بدید.
درود
درسته استایل های آر تی ال فراخوان میشند پیشنهاد میکنم روش دوم رو هم امتحان کنید احتمالا” تو روش دوم RTL هم لود نشه
موفق باشید
اتفاقاً من از روش دوم استفاده کردم نشد چیکار باید بکنم؟
افزونه ای بود که تمام استایل ها و جی اس ها رو تو یک خط یعنی یک فایل (آدرس) به مرورگر خروجی میداد که راست کار شما بود اما متاسفانه نام افزونه خاطرم نیست
پس الآن پیشهاد شما چیست؟
کمی همت به خرج بدید و بگردید دنبال افزونه ای که میتونه مشکلتون رو حل کنه
تو مخزن افزونه های وردپرس minify رو جستجو کنید
چندین افزونه اومد کدومشو بزنم چندتا شو میگم :
1.Minify
2.Better WordPress Minify
3.Simple Minify
4.WP Minify
ندیده غیب میگینا خب اگه میدونستم که بهتون میگفتم
باید دونه دونه نصب و تست بگیرید
من بعضی از فرمهای cf7 رو توی نوشته هام قرار داده ام
باید چیکار کنم؟ باید نوشته ها رو تبدیل به برگه کنم تا قابل انجام باشه؟
اگر از روش اول استفاده میکنید دستوری رو که باید در فایل Page.php قرار بدید رو در فایل Single.php هم قرار بدید و تست کنید ببینید فایلهای افزونه در سورس فراخوان شده اند یا خیر
فوق العاده بود , خیلی ممنون بابت وب سایت فوق العادتون
خواهش میکنم دوست عزیز
دوستان روشی که نویسنده افزونه گفته بهتر کار میکنه!
با سلام خدمت شما و تشکر بابت ارائه این آموزش تو بخش آخر که برای قرار دادن کد تو فانکش قالب هست گفتید که با شماره id مربوط به خودتون رو تغییر بدید. تو فرم تماس وقتی فرمی ساخته میشه به کدش یک id میده من باید اون id رو جای گزین کد پیشفرض شما بکنم؟
درود
خیر دوست خوبم اینطور نیست، منظور شناسه های برگه ها هستند، یعنی برگه هایی که درون آنها از شورتکد افزونه استفاده شده
برای ویرایش وارد برگه بشید و زیر کادر عنوان روی دکمه “دریافت پیوندک” کلیک کنید، عددی که در آدرس تماشا میکنید شناسه برگه شما هست
موفق باشید
سلام و تشکر بابت این مطلب ولی برای سی اس اس فارسی به آدرس:
کار نمکنه لطفا یه راهی بگید که بشه استایل فارسی او رو هم حذف کنیم آخه سایت جی تی متریکس تو قسمت سرعت لود سایت گیر میده.
سپاس
درود
بله کار نمیکنه، انجمن مطرح کنید مسعود جان
سلام
چطور میشه اون رو نصب کرد؟
درود
اگر منظور شما افزونه تماس هست، مسیر زیر را دنبال کنید:
پیشخوان > افزونهها > افزودن > در فرم جستجو بنویسید: contact form 7
سلام
افزونه تماس رو نصب کردم
تنها مشکل من اینه که وقتی پیام رو ارسال می کنم، نتیجه که میشه: پیام شما با موفقیت ارسال شد
هم بالای فرم هست و هم پایین فرم
یعنی بالای کادر نام شما (الزامی) و پایین دکمه ارسال
ممنون میشم برای حل این مشکل من رو راهنمایی کنید
درود
تا بحال چنین موردی رو ندیده بودم تو این افزونه / یکبار افزونه رو پاک کنید و از نو نصب کنید.
سلام.
۱- تشکر بابت این آموزش
۲- نامههای ارسالی بهوسیلهی این فرم تماس بصورت راستچین نیستند! اگر اونم درست بشه بهتره. حتی اگر میشد فونت نامههای ارسالی رو هم تغییر بدیم دیگه عالی بود
درود
خواهش میکنم دوست عزیز
بله نامه هایی که توسط افزونه های تماس ارسال میشن، هیچکدوم راست چین نیستند
درضمن برای روش دوم، محل مناسب یعنی کجا؟! من نمیدونم!
محل مناسب، یعنی اینکه تعدادی از دوستان کدها رو داخل کدهای دیگر قرار میدهند که باعث ایجاد خطا و از دسترس خارج شدن سایت میشود
آغاز و پایان فایل فانکشن محل مناسبی برای قرار دادن کدها هست
عالی بود.متشکرم
با روش دوم سرعت لود سایت کاملا محسوس است
درود بر شما
دست شما درد نکنه.مطلب خوبی بود.
با سلام
ظاهراً نسخه های اخیر این افزونه ، فارسی نمی باشد
فایل ترجمه شده ی آن در مخزن وردپرس موجود می باشد اما وقتی فایل را در پوشه language افزونه قرار میدم ، افزونه فارسی نمی شود
لطفاً اگر کسی راه حل آن را می داند راهنمایی کند
با درود
چیزی که پیش اومده پیوسته با بروزرسانی تازهی این افزونه هست.
ساختار mo را از بخش پایانی این برگه دریافت کنید. (Export)
https://translate.wordpress.org/projects/wp-plugins/contact-form-7/stable/fa/default
سپس نام آن را به contact-form-7-fa_IR.mo بازنویسی کنید و پرونده را در پوشهی زبانهای افزونه بارگذاری کنید.
شاد و پیروز باشید.
کار نکرد و ترجمه نشد به فارسی
لطفاً خودتان تست کنید که آیا لازم نیست تغییراتی در فایل اصلی افزونه انجام دهیم یا خیر؟
منظورم textdomain می باشد
حتما طبق چیزی که گفتم پیش نرفتید، من الان تست کردم و ترجمهها برگشت
از طریق برگه تماس دسترسی به هاست و وردپرستون رو بدید، براتون درست میکنم.
سلام
خسته نباشید چجوری بفهمیم کار میکنه یا نه ؟
مرسی
درود
فایلهای js و css این افزونه پس از ویرایش، تنها باید در برگههای سایت بارگذاری شوند، یعنی در نوشتهها باگذاری نخواهند شد.
سلام
واقعا این در لود شدن سایت یه معزل شده بود برام. اما نمیدونستم مربوط به چی هست. ازتون خیلی خیلی ممنونم.
از پشتیبانی تلفنی تون هم خیلی سپاس گذارم.
لینک ساتمون رو هم میزارم تاثیرش رو ببینید
khanezabanmelal.ir
سلام
من میخوام توی پیش فرض تکست باکس از کد پی اچ پی استفاده کنم مثلا توی یه باکس آدرس صفحه ای که کاربر ازش اومده قرار بگیره.
دوستان کسی راهکاری داره برا این موضوع؟؟
ممنون
درود امید جان
بهتر هست در انجمن بازگو کنید:
http://forum.wp-parsi.com/
سلام وقت بخیر من میخوام کاربر بعد از تکمیل فرم و ارسال به برگه ایی که من میخوام هدایت بشه آیا فرم تماس 7 چنین امکانی داره ؟
با درود.
این افزونه زمانی که فرمی را ارسال میکند، برگه از نو بارگذاری نمیشود و بصورت ajax کار میکند. اما در نظر داشته باشید که این افزونه ممکن راهکاری برای مورد درخواستی شما داشته باشد که شوربختانه بنده از آن بیاطلاع هستم.
سلام
من یه مشکل دارم توی فرم تماس (استخدام)
پیام ارسال میشه ولی فایل اتچ شده به ایمیل ارسال نمیشه.با اینکه پیام ارسال با موفقیت هم نمایش داده میشه
نام شما (الزامی)
[text* your-name]
ایمیل شما (الزامی)
[email* your-email]
(الزامی)موضوع عنوان شغل
[text your-subject]
پیام
[textarea your-message]
pdfفایل رزومه
[file your-file limit:500kb filetypes:pdf|jpg]
[submit “ارسال “]
درود امین جان.
خواهشمندیم در انجمن بیان کنید:
https://wp-parsi.com/support/
سلام دوستان
من یک مشکل دارم که هرچی سرچ کردم نتونستم حلش کنم
در فرم تماس فیلد شماره تلفن گذاشتم و ظاهرا بدون مشکل توسط مشتری پر میشه
اما در ایملی که ارسال میشه شماره تماسی دیده نمیشه
درود.
قطعا مغایرتی وجود دارد. ممکن است فیلد تعریف شده شناسه یکسانی با خروجیای که ایمیل میشود نداشته باشد.