افزودن توابع سفارشی به وردپرس با Code Snippets
- افزونه وردپرسمقالات آموزشی
- بروزرسانی شده در

اگه میخواید یک قابلیت کوچک به وردپرس اضافه کنید، لازم نیست هر بار فایلهای قالب رو تغییر بدید. افزونه Code Snippets به شما اجازه میده کدهای سفارشی PHP رو جدا از قالب ذخیره، فعال و غیرفعال کنید. PHP همون زبان برنامهنویسیه که بخش بزرگی از وردپرس باهاش ساخته شده.
توی این آموزش، اول میبینیم چرا ویرایش مستقیم فایل functions.php انتخاب مطمئنی نیست. بعد افزونه Code Snippets رو نصب میکنیم، یک قطعهکد میسازیم و نکات جلوگیری از خرابشدن سایت رو مرور میکنیم. اگه قبلاً از My Custom Functions استفاده میکردید، روش انتقال امن کدهاتون رو هم توضیح میدیم.
آنچه در این مقاله میخوانید
چرا نباید فایل functions.php رو مستقیم ویرایش کنید
فایل functions.php بخشی از قالب وردپرسه و کدهای PHP مربوط به امکانات قالب داخلش قرار میگیرن. ویرایش این فایل برای توسعهدهندهها کاربردیه، ولی برای یک کاربر تازهکار دردسرهای مهمی داره. اگه هنوز با مفهوم تابع آشنا نیستید، راهنمای تابع وردپرس چیست با مثالهای ساده کمکتون میکنه.
- اگه کد اشتباه باشه، ممکنه سایت با خطای جدی روبهرو بشه.
- با بهروزرسانی قالب، تغییرات مستقیم شما ممکنه پاک بشن.
- بعد از تغییر قالب، کدهای داخل قالب قبلی دیگه اجرا نمیشن.
- مدیریت و غیرفعالکردن چند کد مختلف سخت میشه.
برای آشنایی بیشتر با کاربردهای این فایل، میتونید آموزش ترفندهای مفید برای فایل functions.php وردپرس رو هم ببینید. ولی برای اضافهکردن کدهای مستقل، استفاده از یک افزونه مدیریت قطعهکد معمولاً مسیر سادهتریه.
چرا My Custom Functions دیگه پیشنهاد نمیشه
نسخه قدیمی این مقاله افزونه My Custom Functions رو معرفی میکرد. صفحه رسمی این افزونه در مخزن وردپرس نشون میده که افزونه از ۱۰ نوامبر ۲۰۲۲ بسته شده و برای دانلود در دسترس نیست. به همین دلیل نصب اون روی سایتهای تازه رو پیشنهاد نمیکنیم.
جایگزینی که توی این آموزش استفاده میکنیم Code Snippets هست. این افزونه هر قطعهکد رو جدا نگه مید و به شما اجازه میده کدها رو بدون دستزدن به فایلهای قالب مدیریت کنید. یک راهنمای مرتبط هم توی مقاله افزودن کد سفارشی به وردپرس بدون خرابی سایت در دسترس شماست.
آموزش نصب افزونه Code Snippets
قبل از شروع، از فایلها و پایگاه داده سایتتون نسخه پشتیبان بگیرید. بهتره کدهای جدید رو اول روی یک سایت آزمایشی امتحان کنید. سایت آزمایشی یا Staging یک کپی جدا از سایته که تغییراتش روی سایت اصلی و بازدیدکنندهها اثر نمیذاره.
- وارد پیشخوان وردپرس بشید.
- از منوی «افزونهها» روی «افزودن افزونه تازه» کلیک کنید.
- عبارت Code Snippets رو داخل کادر جستوجو بنویسید.
- افزونه Code Snippets رو پیدا کنید و روی «هماکنون نصب نمایید» بزنید.
- بعد از پایان نصب، افزونه رو فعال کنید.
اگه با این بخش آشنا نیستید، آموزش نصب افزونه در وردپرس همه مراحل رو سادهتر توضیح میده.

ساخت یک قطعهکد PHP در Code Snippets
بعد از فعالسازی، منوی مربوط به قطعهکدها به پیشخوان اضافه میشه. برای ساخت کد جدید، وارد این منو بشید و گزینه افزودن قطعهکد تازه رو انتخاب کنید.

- یک عنوان روشن برای قطعهکد بنویسید؛ مثلاً «تغییر متن خوشامدگویی».
- نوع قطعهکد رو روی PHP قرار بدید.
- کد موردنظرتون رو داخل ویرایشگر وارد کنید.
- اگه تنظیمی برای محل اجرا میبینید، گزینهای رو انتخاب کنید که با کاربرد کد هماهنگ باشه. برای نمونه، کدی که فقط پیشخوان رو تغییر میده نباید بیدلیل در همه بخشهای سایت اجرا بشه.
- توضیح کوتاهی بنویسید تا بعداً بدونید این کد چه کاری انجام میده و منبعش کجاست.
- اول قطعهکد رو ذخیره کنید و بعد از بررسی دوباره، اون رو فعال کنید.

لازم نیست تگ آغازین <?php رو داخل ویرایشگر قطعهکد PHP بنویسید، مگر اینکه راهنمای فعلی افزونه صریحاً از شما چنین چیزی بخواد. کد رو دقیقاً طبق دستور منبع قابل اعتماد وارد کنید و هیچ بخش ناشناختهای رو حدس نزنید.
خیلی از قطعهکدهای وردپرس با هوک کار میکنن. هوک نقطهای مشخصه که کد شما از اونجا به وردپرس وصل میشه. برای شناخت ساده این مفهوم، آموزش هوک وردپرس چیست رو بخونید.
چطور کد جدید رو با خطر کمتر فعال کنید
کد PHP اشتباه ممکنه باعث خطای جدی یا از دسترس خارجشدن بخشهایی از سایت بشه. برای کمکردن این خطر، هر بار فقط یک قطعهکد رو فعال کنید و بلافاصله بخش مرتبط سایت رو بررسی کنید.
- کد رو فقط از منبعی بگیرید که بهش اعتماد دارید.
- قبل از فعالسازی، نسخه پشتیبان تازه داشته باشید.
- کد رو اول روی سایت آزمایشی امتحان کنید.
- چند قطعهکد جدید رو همزمان فعال نکنید.
- بعد از فعالسازی، صفحه اصلی، پیشخوان و بخشی که کد تغییرش میده رو بررسی کنید.
- منبع و هدف کد رو داخل توضیحات همون قطعهکد بنویسید.
یادتون نره که جداشدن کد از قالب به معنی بینیازی از بررسی نیست. اگه قطعهکد به یک قالب، افزونه یا تابع خاص وابسته باشه، بهروزرسانی یا حذف اون وابستگی ممکنه عملکرد کد رو تغییر بده.
غیرفعالکردن یک قطعهکد مشکلدار
اگه بعد از فعالکردن یک کد هنوز به پیشخوان دسترسی دارید، وارد فهرست قطعهکدها بشید و همون مورد رو غیرفعال کنید. بعد سایت رو دوباره بررسی کنید تا مطمئن بشید مشکل از همون کد بوده.
اگه خطا اجازه ورود به پیشخوان رو نمیده، از روش بازیابی یا Safe Mode افزونه استفاده کنید. Safe Mode یعنی اجرای موقت سایت بدون قطعهکدهای فعال تا بتونید کد مشکلدار رو پیدا کنید. روش ورود به این حالت ممکنه بین نسخههای افزونه تغییر کنه، پس دستور فعلی صفحه رسمی یا راهنمای خود افزونه رو دنبال کنید.
مهاجرت از My Custom Functions به Code Snippets
اگه My Custom Functions هنوز روی سایتتون نصبه، اول اون رو حذف یا غیرفعال نکنید. باید کدها رو با نظم منتقل کنید تا قابلیتهای سایت ناگهان از کار نیفتن.
- از کل سایت نسخه پشتیبان بگیرید.
- یک کپی از همه کدهای فعلی My Custom Functions داخل یک فایل متنی امن نگه دارید.
- هدف هر بخش از کد رو مشخص کنید. اگه کاربرد بخشی رو نمیدونید، قبل از انتقال از یک متخصص کمک بگیرید.
- هر قابلیت رو بهصورت یک قطعهکد جدا داخل Code Snippets بسازید.
- قطعهکدها رو یکییکی روی سایت آزمایشی فعال و آزمایش کنید.
- بعد از اطمینان از انتقال کامل، My Custom Functions رو غیرفعال کنید.
- سایت اصلی رو بررسی کنید و افزونه قدیمی رو فقط وقتی حذف کنید که نسخه پشتیبان سالم دارید و همه قابلیتها درست کار میکنن.
جمعبندی
برای افزودن توابع سفارشی به وردپرس، ویرایش مستقیم functions.php تنها انتخاب شما نیست. Code Snippets کدها رو جدا از قالب نگه مید و مدیریت هر قطعهکد رو سادهتر میکنه. بااینحال، خود کد PHP همچنان میتونه روی امنیت و عملکرد سایت اثر بذاره؛ پس نسخه پشتیبان، سایت آزمایشی و استفاده از کد قابل اعتماد رو جدی بگیرید.
س
آیا کدهای Code Snippets با بهروزرسانی قالب پاک میشن؟
نه، قطعهکدها جدا از فایلهای قالب ذخیره میشن و بهروزرسانی یا تغییر قالب معمولاً اونها رو پاک نمیکنه. ولی اگه یک کد به تابع یا قابلیت خاص قالب وابسته باشه، بعد از تغییر قالب ممکنه دیگه درست کار نکنه.
آیا قبل از افزودن کد PHP باید نسخه پشتیبان بگیرم؟
بله. یک اشتباه کوچک داخل کد PHP ممکنه بخشی از سایت یا پیشخوان رو از دسترس خارج کنه. قبل از فعالسازی کد، از فایلها و پایگاه داده نسخه پشتیبان بگیرید و بهتره اون رو اول روی سایت آزمایشی امتحان کنید.
آیا هنوز باید My Custom Functions رو نصب کنم؟
نه. این افزونه در مخزن رسمی وردپرس بسته شده و برای دانلود در دسترس نیست. برای یک نصب تازه، بهتره از جایگزینی فعال مثل Code Snippets استفاده کنید و وضعیت فعلی افزونه رو قبل از نصب از صفحه رسمی اون بررسی کنید.

سلام وقت بخیر
این افزونه در دسترس نیست
This plugin has been closed as of November 10, 2022 and is not available for download. Reason: Guideline Violation.
چطور میتوانیم به این افزونه دسترسی داشه باشیم یا افزونه ای با عملکرد مشابه هست معرفی نمایید باتشکر
سلام وقت بخیر متاسفانه حذف شده و راهی نداره.
سلام خانوم همایون
من مدتها هست دنبال آموزشی هستم که متاسفانه در وب فارسی وجود نداره.
ببینید سایت من از دو بخش محتوایی تشکیل شده که وقتی میخوام پست کنم چند تگ مرتبط انتخاب میکنم ولی میخوام تگهای اختصاصی داشته باشم.
نمونه:
site.com/tag1/Word
site.com/tag2/Word
میتونید کمکم کنید
ممنون . کاربردی است