תבנית בת וורדפרס child theme
חשוב מאוד לפני כל בניית אתר ליצור תבנית בת לתבנית שאתם מורידים, תבנית בת חשובה מאוד מכיוון שהיא מאפשרת לכם להוריד עידכונים לתבנית גם אם שיניתם את הקוד מבלי לדרוס את הקיים, הדבר נעשה מכיוון שאת הקוד שאנחנו משנים אנחנו לא משנים בתבנית המקור אלא בתבנית הילד שיורשת את תבנית המקור.
מערכת הוורדפרס מחפשת קודם את הקובץ שמתבקש בערכת תבנית הבת ואם לא קיים שם אז היא עוברת לתבנית המקור, כך למעשה מאפשרת לנו מערכת הוורדפרס ליצור תת תבנית שיורשת את כל ההגדרות של תבנית המקור.
ישנם תבניות פרימיום שמסופקות עם תבנית ילד ומומלץ להשתמש בהם.
באם לא סופקה לכם תבנית בת כך יוצרים תבנית כזו :
פותחים עוד תקיה כמו שהם של התבנית שלכם ומוסיפים לה -child למשל 'twentyfifteen-child' ושמים אותה בתקיה של התבניות wp-content/themes
יוצרים קובץ style.css ומדביקים בתוכו את הקוד הבא :
/* Theme Name: Twenty Fifteen Child Theme URI: http://http://support.netjos.com/twenty-fifteen-child/ Description: Twenty Fifteen Child Theme Author: jos jos Author URI: http://http://support.netjos.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 */
וכמובן משנים שם את השם שלכם ואת האתר שלכם או מה שבא לכם.
בקובץ הזה רושמים את הסטייל שאתם רוצים, במידה ואתם רוצים גם לייבא את הקובץ הסטייל של התבנית המקורית ורק לעשות שינויים קטנים בסוף אתם מוסיפים את השורה הזאת למעלה
@import url("../twentyfifteen/style.css");
כמובן שמשנים למסלול של תבנית המקור שלכם.
ניתן להוסיף עוד קבצים שקיימים בתבנית המקורית כמו page.php וכ"ו.. אבל יש לדעת שהם מחליפים את הקובץ שקיים בתבנית המקורית וצריך לשכתב אותם מחדש.
עכשיו נעבור ל function.php
בקובץ הפונקציות בניגוד לקובץ הסטייל ושאר הקבצים המערכת לא דורסת את הקובץ אלא מוסיפה את הפונקציות החדשות שאנחנו רושמים.
פשוט פותחים קובץ עם השם function.php בתבנית הילד ורושמים פונקציות חדשות או מוספים איזורי ווידגטים חדשים שרוצים
ניתן להוסיף קבצי css ו javascript שקיימים בתבנית המקור ע"י קריאה לפונקציות
כך:
<?php add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' ); function my_theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } ?>