[پوسته‌ی] فرزند صالح، گلی از گل‌های بهشت است.

ساخت پوسته فرزند در وردپرس
اگر حوصله مقدمه‌چینی‌های منو نداری و فقط اومدی روش ساختن پوسته فرزند رو یاد بگیری، برو سر اصل مطلب

یکی از جذاب‌ترین ویژگی‌های وردپرس اینه که می‌تونیم تقریباً همه چیزو مطابق میل خودمون شخصی‌سازی کنیم. اولین چیزی هم که مشمول این قضیه میشه، معمولاً پوسته است. برای این کار چند تا راه وجود داره که خب ساده‌ترینش اینه که مستقیم بریم سراغ فایل‌های تم و شروع کنیم تغییر دادنشون. البته این راه حل مثل اکثر “ساده‌ترین” راه‌حل‌های دنیا چند تا مشکل اساسی داره:

  1. تعداد فایل‌های موجود تو هر تم زیادن و نگه داشتن آمار اینکه کجاها چه تغییراتی دادیم خیلی سخته. (البته اگه ورژن کنترلی در کار نباشه، حالا بعداً در مورد اینکه رو وردپرس ورژن کنترل بالا بیاریم هم صحبت میکنیم.)
  2. اگه بخوایم چند حالت مختلف شخصی‌سازی روی یه تم رو مقایسه کنیم باید برای هر مقایسه کل کدهای مربوط به اون شخصی‌سازی رو هر دفعه به کل پاک کنیم و اون یکی رو جایگزین کنیم.
  3. اگر یه جای کار مشکلی پیش بیاد، هیچ راه ساده‌ای برای برگشتن به شرایط ایمن وجود نداره و در تمام مدتی که در حال دیباگ کردن گندی هستیم که زدیم وبسایت مشکل خواهد داشت.
  4. مهم‌تر از همه، با هر بار آپدیت تمام کارایی که کردیم به کل می‌پره چون موقع آپدیت کل فایل‌های تم دوباره دانلود می‌شن.

با این توضیحات می‌شه نتیجه گرفت که این راه‌حل همون‌قدر که ساده است، اشتباه هم هست. خود وردپرس برای این کار یه راه حل پیشنهاد میده که هیچکدوم از ۴ تا مشکل بالا رو نداره: ساختن پوسته فرزند (Child Theme)

اساساً پوسته فرزند چیست؟

پوسته فرزند، پوسته‌ای که تمام خصوصیاتشو از یه پوسته مادر به ارث می‌بره ولی این امکان رو هم بهمون میده که هر کدوم از ویژگی‌های مادر رو که می‌خوایم override کنیم. هر تغییری در پوسته مادر اتفاق بیفته عیناً به فرزند منتقل میشه ولی تغییرات فرزند هیچ تاثیری روی عملکرد مادر نداره.

چرا باید پوسته فرزند بسازم؟

  1. تو تم فرزند ما فقط تغییراتمون رو ذخیره می‌کنیم. (به استثنای چند خط که به وردپرس بگیم مادر این بچه کیه و اینکه بره فایل‌های مادر رو لود کنه.) پس حساب تغییراتمون رو خیلی راحت‌تر می‌تونیم داشته باشیم و دیگه نگرانی اینکه اون فونتی که عوض کردیم تو کدوم فایل CSS بود عملاً وجود نخواهد داشت.
  2. تو وردپرس میشه برای هر پوسته بینهایت فرزند درست کرد پس می‌تونیم برای هر کدوم از مدل‌های کارمون یه تم فرزند داشته باشیم که برای چک کردنشون فقط کافیه از پنل ادمین وردپرس تم رو عوض کنیم.
  3. اگه به خاطر تغییری مشکلی پیش اومد، تا وقتی که داریم مشکل رو ردیابی می‌کنیم سریع میتونیم برگردیم به پوسته مادر یا پوسته فرزند دیگه‌ای که می‌دونیم درست کار میکنه. البته خود پروسه دیباگ کردن هم به خاطر اینکه فقط تغییرات تو فرزند ذخیره می‌شن به مراتب سریع‌تر و راحت‌تره.
  4. آپدیت پوسته هیچکدوم از فایل‌های فرزند رو تغییر نمی‌ده یا پاک نمی‌کنه.
  5. ضمناً اینکه می‌تونیم پوسته فرزند رو به اسم خودمون پابلیش کنیم تو دایرکتوری وردپرس.

سر اصل مطلب

ساخت پوسته فرزند به صورت دستی

ساخت دستی پوسته فرزند ۴ مرحله داره:

  1. اولین کار اینه که یه فولدر برای تم جدیدتون درست کنید.  مهم نیست اسمشو چی میذارین و ولی راحت تره که مشابه تم اصلی باشه. مثلاً تو این مثال که می‌خوایم واسه تم twentyfifteen تم فرزند بسازیم، اسم فولدر رو twentyfifteen-child گذاشتیم.داخل فولدر پوسته فرزندتون یه فایل با اسم function.php بسازید و این کد رو توش قرار بدین.
    add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
    function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    }
    ?>
    <?php
    

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

  2. حالا یه فایل style.css درست کنید و این کد رو توش قرار بدید
    /*
    Theme Name: Twenty Fifteen Child
    Theme URI: http://siteshoma.com/twenty-fifteen-child/
    Description: Twenty Fifteen Child Theme
    Author: Felan Felani
    Author URI: http://felanfelani.com
    Template: twentyfifteen
    Version: 1.0.0
    License: GNU General Public License v2 or later
    License URI: http://www.gnu.org/licenses/gpl-2.0.html
    Tags: yeseritag
    Text Domain: twenty-fifteen-child
    */
    

    اینجا تو قسمت template میگیم که تم والد کدوم تمه. حواستون باشه که باید اسم فولدر تم که تو دایرکتوری وردپرس رو اینجا بنویسین. یعنی اگه به جای twentyfifteen بنویسین Twenty Fifteen کار نمیکنه.
    جلوی Author و Author URI هم می‌تونین اسم خودتون و سایت شخصی‌تونو بنویسین.

  3. جالا فولدری که ساختین رو یه فایل zip می‌کنید و بعد تو پنل وردپرس از قسمت پوسته‌ها – افزودن پوسته – بارگزاری پوسته فایل زیپ رو آپلود می‌کنید.
  4. حالا با فعال کردن این پوسته می‌تونید تغییراتی که می‌خواین رو روی پوسته‌اتون اعمال کنید. مثلاً هر چیزی که شما تو اون فایل style.css داخل پوسته فرزندتون می‌نویسین بعد از لود شدن css پوسته اصلی لود می‌شه و اگه تگ مشترکی با css اصلی داشته باشه اونو override میکنه.

البته، یه راه دیگه هم هست:

می‌تونید از پلاگین‌ها هم استفاده کنید. مثلاً One-Click Child Theme یا Child-theme Configurator

نوشته شده برای مجله آنلاین بی‌کد و بی‌جهت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *