آموزش وردپرس, طراحی وب, مقالات وردپرس, وبلاگ

قالب فرزند یا Child Theme در وردپرس چیست؟ و نحوه ساختن قالب چیلد آن

قالب child در وردپرس

قالب فرزند یا قالب چیلد child در واقع یک نوع زیر قالب میباشد که همه خصوصیات یک قالب دیگر (قالب پدر یا والد) را دارد و برای زمانی مناسب است که شما بخواهید که در کدنویسی قالبتون تغییری بدید بدون اینکه سورس اصلی قالبتون تغییری بکنه یا بعد از بروزرسانی کردن قالب تغییراتی که شما در کد ها اعمال کردید از بین برود. قالب وردپرس چایلد برای زمانی مناسب میباشد که شما قصد اعمال تغییرات اساسی در هسته قالبتون رو دارید. همه قالب های وردپرس از نسخه چیلد پشتیبانی میکنند و یکسری از قالب ها بصورت دیفالت همراه با نسخه child ارائه میشود، اما شما میتوانید خودتان براحتی قالب وردپرس فرزند سایتتون رو در صورتی که همراه با قالب وجود نداشته باشد درست بکنید.

توضیحات بیشتر :

قالب فرزند قالب است که توابع(function) و استایل قالب اصلی یا قالب پدر(parent theme) را به ازث می برد. قالب فرزند زمانی به کار می اید که شما یک کاربر حرفه ای باشید و بخواهید اصلاحاتی را در قالب اصلی ایجاد کنید بدون اینکه با اپدیت کردن یا یکسری تغییرات دیگر اطلاعات شما از بین برود. به زبان ساده از دردسر هایی که ممکن است بعدا برای شما پیش بیاید جلوگیری می کنید

چرا باید از یک قالب فرزند یا قالب child استفاده کنیم؟

از دلایل استفاده و ایجاد قالب فرزند می توان به موارد زیر اشاره کنیم:

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

نحوه ساختن قالب فرزند در وردپرس

چگونه می توانیم یک قالب فرزند یا قالب child بسازیم؟

معمولا امروزه بیشتر قالب های پریمیوم و غیر رایگان قالب فرزند را همراه با قالب اصلی عرضه میکنند و نیاز به ساخت و طی کردن این مراحل نیست. مثلا در فایل فشرده قالبی که در اختیار شما قرار می گیرد اگر نام قالب شما example باشد قالب شما به عنوان example-child مشخص خواهد شد.

در صورتی قالب فرزند وجود نداشته باشد از روش زیر خودتان میتوانید انرا بسازید:

برای ساخت قالب فرزند شما دو تا فایل در دایرکتوری قالب نیاز دارید: یکی فایل style.css و دیگری فایل functions.php . مثلا برای قالب example این کار را انجام میدهید:

  • در پوشه wp-content/themes یک پوشه میسازید به نام examlpe-child (در نام قالب و پوشه فرزند از فاصله space استفاده نکنید و حتما هم لازم نیست اسم قالب examlpe-child باشد و هر نامی را که بخواهید میتوانید برای ان انتخاب کنید)
  • سپس دو فایل متنی را ایجاد می کنید و نام انها را به style.css و functions.php (در صورتی که در سیستم عامل ویندوز و در لوکال این مراحل را انجام میدهید باید قابلیت نمایش پسوند فایل ها را فعال کنید تا بتوانید فرمت انها را عوض کنید)

در فایل style.css کد های زیر را وارد کنید:

/*
Theme Name: Twenty Fifteen Child
Theme URI: http://example.com/twenty-fifteen-child/
Description: Twenty Fifteen Child Theme
Author: webmaster98
Author URI: https://webmaster98.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: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fifteen-child
*/

نکته: فایل های css قالب فرزند برای استفاده نیاز به فایل های css قالب اصلی دارند. به نحو که اول کد های قالب اصلی اجرا میشود سپس کد هایی که شما در قالب فرزند نوشته اید اما اولویت کدهای قالب فرزند برای اجرا از قالب والد بیشتر است به این معنی که اگر شما در قالب فرزند رنگبندی یک باکسی رو تغییر داده باشید، و در قالب والد هم اینکار را کرده باشید، رنگی که در قالب فرزند نوشته اید اعمال خواهد شد

نکته2: اگر شما می خواهید ظاهر قالب را تغییر دهید انجام کد نویسی در فایل style.css کافی است و نیازی به نوشتن کد های خاص مربوط به استایل دهی در فایل functions.php نخواهد بود.

تنطیم کردن فایل functions.php در نسخه فرزند قالب

برای اینکار در پوشه فرزند قالب یک فایل به نام functions.php درست بکنید و کد زیر را در آن فایل قرار دهید:

<?php
function my_theme_enqueue_styles() {

    $parent_style = 'webmaster98'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

در کد بالا به جای عبارت webmaster98 اسم قالب والد را بنویسید.

بعد از ذخیره کردن فایل بالا هر متن و کدی که در فایل style.css پوشه قالب فرزند بنویسید بر روی سایت شما اعمال خواهدشد.

تغییر فایل های php در قالب فرزند :

برای تغییر در فایل functions.php شما میتوانید در همان جا کد های php خودتون رو وارد کنید، کافیه تگ های php را باز کنید و شروع به کد نویسی کنید. اما در صورتی که می خواهید یکی از توابع موجود در functions.php قالب اصلی را ویرایش کنید و تغییرات را در قالب فرزند ببینید از کد زیر برای فراخوانی و جایگزین کردن تابع استفاده کنید

 

if (!function_exists(‘نام_تابع’)) {
function نام_تابع() {
//کد 
}
}

 

برای ویرایش فایل های دیگر مانند فایل های php, js, css, jq یا هر فایل دیگری باید ان فایل را دقیقا با همان اسم بسازید اگر فایل شما در پوشه دیگری قرار دارد باید پوشه مربوطه را هم در قالب فرزندتون بسازید.

نحوه نصب و فعال سازی قالب فرزند یا قالب child در وردپرس :

نحوه نصب و فعال کردن قالب وردپرس child بسیار ساده میباشد به این صورت که شما بعد از اینکه یک پوشه با اسم مثلا webmaster98-child درست کردید و در اون فایل های خودتون رو قرار دادید و تغییراتتون رو اعمال کردید باید پوشه قالب فرزند خودتون (webmaster98-child) رو با استفاده از file manger هاستتون در مسیر

wp-contnet/themes/

اپلود بکنید. بعد از اینکه اپلود این قالب وردپرس را انجام دادید شما نیاز به فعال کردنش دارید، برای فعال کردنش باید همانند همه قالب های وردپرس از منوی سمت راست پیخشوان وردپرس”نمایش->پوسته ها” اقدام بکنید و قالب خودتون رو در اونجا فعال بکنید.

دقت داشته باشید که تا زمانی که قالب والد(همان قالبی که از روش نسخه فرزند رو درست کردید) در پوشه wp-content/themes موجود نباشد قالب چیلد یا قالب فرزند وردپرس شما کار نخواهد کرد. باید هر 2 قالب فرزند و قالب والد در کنار همدیگر باشند.

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

 

author-avatar

درباره سینا لطفی

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