ساختار سلسله مراتبی فایل‌های قالب وردپرس

شناخت سلسله مراتب پوسته وردپرس به ما کمک می‌کند تا در توسعه و خطایابی قالب سایت سریع‌تر باشیم. در این آموزش ساختار فایل‌های قالب وردپرس و سلسله مراتب اجرای آن‌ها را بررسی می‌کنیم.

شاید یک وبمستر، توسعه‌دهنده وردپرس یا در ابتدای راه یادگیری ایجاد پوسته wordpress باشید. این آموزش به‌نوعی یک اصول اولیه برای درک ساختار پوسته‌ها و نحوه اجرای آن‌هاست.

وقتی درک مناسبی از این ساختار و سلسله مراتبش داشته باشید، علاوه بر توسعه، در خطایابی تغییر پوسته‌ها مهارت پیدا می‌کنید.

ساختار پایه پوسته وردپرس

اگر با نصب پوسته وردپرس آشنا باشید، می‌دانید که همه پوسته‌ها در مسیر wp-content در فولدر themes قرار می‌گیرند. ساختاری که در این جلسه بررسی می‌کنیم، فایل‌های موجود در فولدر هر پوسته هستند.

هر پوسته فایل‌های زیادی دارد اما تنها ۲ تای آن‌ها برای اجرای قالب ضروری است! index.php برای ساختار قالب و style.css که کدهای css درون آن قرار می‌گیرد.

اگر بخواهیم index.php را به چهار فایل کوچک‌تر برای مدیریت بهتر کدها تقسیم کنیم، عموماً تقسیم‌بندی زیر استفاده می‌شود:

  • درون index.php کدهای بدنه اصلی سایت قرار می‌گیرد. این بدنه معمولاً در هر صفحه محتوای جدید را تولید می‌کند.
  • sidebar.php حاوی کدهای نوار کناری (یا همان سایدبار) سایت است.
  • header.php کدهای هدر (سربرگ) نظیر تگ <head> و منوهای بالای سایت را شامل می‌شود.
  • در footer.php کدهای مربوط به فوتر سایت (نظیر لینک‌های دسترسی سریع یا کپی رایت) قرار می‌گیرد.

احتمالاً حدس می‌زنید که سه فایل آخر معمولاً کدها و ساختارهای ثابت‌تری نسبت به index دارند. چون محتوایی از سایت را نمایش می‌دهند که ثابت یا شبیه به هم است. مثلاً منوها در تمام صفحات به‌طور مشابه تکرار می‌شوند.

این فایل‌ها مشابه فراخوانی فایل با include یا require در PHP با توابع مخصوص وردپرس در index.php فراخوانی می‌شوند.

فایل‌های پوسته وردپرس

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

برخی از این نام‌ها در ساختار پوسته وردپرس استفاده می‌شوند اما برخی دیگر به‌دلخواه توسعه‌دهنده ایجاد و استفاده می‌شوند.

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

نام فایل در پوستهکاربرد قالب یا کدهای آن
functions.phpقطعه کدهای PHP در آن قرار می‌گیرد.
این قطعه کدها در همه صفحات اجرا می‌شوند.
تعریف توابع PHP، فیلترها و اکشن وردپرس از جمله کدهایی است که در کد فانکشن قالب قرار می‌گیرند.
home.php و front-page.phpپوسته صفحه اصلی (اگر مایلید صفحه اصلی ظاهر متفاوتی از index داشته باشد)
single.phpساختار و قالب نوشته‌های وردپرس
page.phpقالب صفحه برگه‌ها
category.phpقالب صفحه‌های نمایش دسته‌بندی
tag.phpپوسته نمایش برچسب‌ها
comments.phpطراحی و ساختار دیدگاه‌ها در انتهای نوشته‌ها
author.phpبایگانی نویسنده‌ها
date.phpبایگانی زمانی نوشته‌ها
search.phpقالب صفحه نتایج جستجو
404.phpقالب صفحه خطای 404
ساخت پست تایپ در وردپرس و کار با Post type

ساخت پست تایپ در وردپرس و کار با Post type

سلسله مراتب قالب وردپرس

فایل‌های قالب وردپرس دارای یک سلسله مراتب برای اجرا هستند.

مثلاً فرض کنید قرار است یک post در سایت نمایش داده شود. post می‌تواند هر نوع پست تایپی (نظیر رسانه‌ها، نوشته‌ها، برگه‌ها و …) باشد. وردپرس به ترتیب کارهای زیر را انجام می‌دهد:

  • در ابتدا وردپرس سعی می‌کند قالبی (فایل حاوی کد صفحه‌ای) که برای آن post خاص وجود دارد را بارگذاری کند. این مورد از روی نامک پست مشخص می‌شود.
  • درصورتی‌که این فایل وجود نداشت، به دنبال قالبی مخصوص آن پست تایپ می‌گردد؛ مثل قالب مخصوص صفحه محصول.
  • اگر این فایل وجود نداشت تلاش می‌کند قالب عمومی برای postها را اجرا کند. (که آن را با نام single.php می‌شناسیم)
  • باز هم اگر چنین فایلی نبود، به دنبال singular.php می‌گردد.
  • در انتها اگر هیچ قالب مخصوصی وجود نداشت، از index.php برای نمایش محتوا استفاده می‌کند.

سلسله مراتب اجرای قالب post‏ وردپرس

اگر توضیحات بالا را به اسم فایل‌های ساختار پوسته وردپرس خلاصه کنم، به ترتیب می‌توانیم فایل‌هایی با نام‌های مشابه زیر داشته باشیم:

ساختار نام فایل phpمحل کاربرد
single-{post-type}-{slug}پست با نامک {slug} از نوع {post-type}
single-{post-type}پست‌های نوع {post-type}
مثلاً single-product.php برای صفحه نمایش محصول است.
single.phpپوسته پیشفرض برای همه postها
singular.phpقالب پیشفرض برای همه محتواهای تکی
(وقتی مستقیماً در صفحه محتوا هستیم)
index.phpساختار قالب پیشفرض در وردپرس

برای هر صفحه دیگری نیز روند مشابهی طی می‌شود. مثلاً یک سلسله مراتب برای نمایش صفحات بایگانی یا archive داریم. همچنین برای نمایش pageها، دسته‌بندی‌ها و برچسب‌های وردپرس.

همهٔ این سلسله مراتب و یک تصویر از آن را می‌توانید در صفحه مستندات توسعه قالب وردپرس ببینید. (اینجا)

آموزش کوئری وردپرس و query دلخواه

آموزش کوئری وردپرس و query دلخواه

سلسله مراتب category پوسته وردپرس

برای اینکه یک مثال دیگر را با هم بررسی کرده باشیم، سلسله مراتب اجرای قالب برای نمایش دسته‌بندی وردپرس مشابه زیر است:

  1. category-{slug}.php : قالب مخصوص دسته‌بندی با نامک مشخص
  2. فایل category-{id}.php : پوسته دسته‌بندی با id مشخص
  3. category.php : قالب عمومی برای نمایش همهٔ دسته‌بندی‌ها
  4. archive.php : قالب عمومی برای صفحات بایگانی در سایت
  5. index.php

نکات ایجاد فایل های پوسته وردپرس

اگر در حال طراحی پوسته وردپرس هستید، می‌توانید هر کدام از این فایل‌های پیشنهادی در سلسله مراتب‌ها را ایجاد کنید. اینکه کدام فایل را ایجاد کنید، بستگی به نیازمندی‌های شما دارد. مثلاً اگر بخواهید نمایش یکی از دسته‌بندی‌هایتان متفاوت شود، می‌توانید از حالت slug استفاده کنید.

اگر در حال توسعه وردپرس هستید، پیشنهاد می‌کنم پوسته اصلی را تغییر ندهید! به جایش یک child theme ایجاد کرده و هر تغییر یا فایل اضافه را در آن انجام دهید. اگر فایلی که در فرزند ایجاد می‌کنید در قالب اصلی باشد، آن فایل بازنویسی خواهد شد. آموزش ایجاد پوسته فرزند در وردپرس ایده‌های خوبی به شما می‌دهد.

امیدوارم این آموزش در درک ساختار فایل‌های پوسته وردپرس به شما کمک کرده باشد. اگر سؤالی دارید یا فایلی هست که در این ساختار گفته نشده از بخش دیدگاه‌ها با ما در میان بگذارید. مجدد پیشنهاد می‌کنم که صفحه مستندات wp theme structure را بررسی کوتاهی داشته باشید.