در یک قالب وردپرس هیچ جدول مسیری وجود ندارد. وردپرس بر اساس آنچه درخواست شده یک فهرست مرتب از نام فایل میسازد و اولین فایلی را که در پوشه قالب پیدا کند اجرا میکند.
برای یک نوشته از یک نوع محتوای سفارشی، فهرست از خاص به عام اینطور است:
single-{post_type}-{slug}.phpبرای دقیقا همان یک نوشتهsingle-{post_type}.phpبرای همه نوشتههای آن نوعsingle.phpبرای هر نوشتهایsingular.phpبرای هر چیزی که یک تکمحتواستindex.phpکه تنها فایلی است که یک قالب واقعا لازم دارد
همین الگو برای بایگانی و برگه هم هست، با نامهای خودشان. یعنی برای سفارشی کردن نمایش یک نوع محتوا، هیچ کدی برای مسیریابی نمینویسید؛ یک فایل با نام درست میسازید و کار تمام است.
قالب فرزند، و تنها دلیل وجودش
قالب فرزند برای این است که تغییرهای شما با بهروزرسانی قالب اصلی از بین نروند. هر فایلی که در فرزند بگذارید، جای همان فایل در والد را میگیرد، و فایلهایی که نگذاشتهاید از والد میآیند.
یک استثنا هست که همه را یک بار گیر میاندازد: فایل توابع فرزند جای فایل والد را نمیگیرد، هر دو اجرا میشوند و فرزند اول. یعنی برای برداشتن رفتاری که والد اضافه کرده باید هوکش را جدا کنید و نه اینکه فایل را بازنویسی کنید. سازوکارش همان سیستم هوک است که در چیزی که سهم بزرگی از وب را میگرداند شمرده شد.
حلقه، و کاری که واقعا میکند
حلقه اصلی یک ساختار تکرار ساده نیست: در هر دور، وردپرس متغیر سراسری نوشته جاری را ست میکند و همه توابع قالب از همان میخوانند. برای همین توابع قالب بیرون از حلقه چیز عجیبی برمیگردانند یا هیچ چیزی.
و اگر یک کوئری دوم بنویسید، پس از پایانش باید وضعیت را بازنشانی کنید، وگرنه بقیه صفحه فکر میکند هنوز داخل آن کوئری است. این رایجترین باگ قالبهای دستساز است و نشانهاش این است که نوار کناری یا پاصفحه محتوای اشتباه نشان میدهد.
جایی که کار گیر میکند، قالب راستبهچپ و قلم فارسی است
بیشتر قالبهایی که در ایران استفاده میشوند برای زبان چپبهراست ساخته و بعد راستبهچپ شدهاند. دو مسئله همیشه میماند. اول، خود وردپرس فایل سبک راستبهچپ را خودکار بارگذاری میکند اگر با نام درست کنارش باشد، و بیشتر قالبها این را نمیدانند و بهجایش قاعدههای جهتدار را داخل فایل اصلی مینویسند. دوم، قلم: قالب معمولا یک قلم لاتین را از یک سرویس بیرونی میگیرد، که هم فارسی را پوشش نمیدهد و هم از ایران کند بارگذاری میشود. جواب هر دو یکی است: قلم فارسی را کنار خود قالب میزبانی کنید و سرویس بیرونی را کامل بردارید.
ابزار، و سالی که این حرف درست است
در سال ۲۰۲۶، افزونههای نمایش سلسلهمراتب قالب، نام دقیق فایلی که وردپرس برای صفحه فعلی انتخاب کرده را در نوار مدیریت نشان میدهند و رایگاناند؛ جای حدس زدن از روی جدول سلسلهمراتب را گرفتهاند. برای ساختن قالب فرزند، خود WP-CLI دستورش را دارد و ساختار درست را میسازد. ویرایشگر بلوکی هم مسیر دیگری برای قالب باز کرده که در آن بخش زیادی از این فایلها با فایلهای الگو جایگزین میشوند، و هر دو مسیر در نسخه امروزی پشتیبانی میشوند.
پرسش بعدی این است که وقتی رفتاری لازم شد که به ظاهر ربطی ندارد، کجا باید نوشته شود، که هوک، فیلتر، و نوشتن افزونه خودتان است. و همان زبان زیر این فایلها در نحو، درخواست، و شکل یک اسکریپت است.