تعداد بازدید: 92

بازنویسی قالب های وردپرس template hierarchy

وردپرس این امکان را برای شما فراهم می کند تا قالب های پیش فرض وردپرس رو بازنویسی کنید و یا همچنین یک سری قالب های جدید بر حسب قوانین جدید فراخوانی کنید و یا قالب های موجود رو بسط بدید. بدین شکل که شما قالب فایل جدید رو به نقطه دلخواه خودتون به قالب های موجود در تابع get_query_template واردکنید.

نکته : یکی از مهم ترین کاربرد های این مورد بازنویسی قالب جدید در پلاگین است. یعنی قالب single.php رو از داخل پلاگین شما فراخوانی کنه.

در مقاله معماری قالب وردپرس شما با قالب های پیش فرض وردپرس آشنا شدید. در این مقاله توضیح داده شده که چگونه با استفاده از فیلتر های زیر قالب های موجود رو بازنویسی کنید:

  • {type}_template
  • template_include
  • woocommerce_locate_template

بسط دادن قالب های موجود – {type}_template

فیلتر مورد نظر شما باید به شکل {type}_template ساخته بشه . نمونه های زیر را دریابید:

  • 404_template : زمانی که وارد قالب صفحه ۴۰۴ شد.
  • embed_template
  • search_template : زمانی که وارد قالب جستجو شد.
  • frontpage_template
  • home_template
  • taxonomy_template : اگر قالب taxonomy فراخوانی شد.
  • attachment_template
  • single_template : زمانی که قصد رفتن به صفحه داخلی پست را داشت. یعنی فراخوانی single
  • page_template
  • singular_template
  • category_template
  • tag_template
  • author_template
  • date_template
  • archive_template
  • index_template

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

  1. author-{role}.php
  2. author-{nic-name}.php
  3. author-{id}.php
  4. author.php
  5. archive.php
  6. index.php

مثال اول : اگر بخواهید بر حسب یک query string خاص قالب های خاص از نویسنده نمایش داده بشه. مثلا query string با نام role داشته باشیم. و برای نویسنده ای مقدار query string برابر با editor باشه . زمان فراخوانی قالب نویسنده به دنبال فایل author-editor.php بگرده.

خوب شما می خواهید که برای query string با نام role قالبی ایجاد کنید با نام author-{role}.php که باید query variable آن را از قبل ایجاد کرده باشید.

برای اضافه کردن author-{role}.php قبل از author.php باید فیلتری به قالب author_template اضافه کنید.

در کد بالا گفته که اگر قصد template نویسنده وارد شد و به همراه خودش query string با نام role داشت قالب فایل author-{$role}.php رو فراخوانی کن. در پایان هم گفته که اگر شروط برقرار نبود همون قالب قبلی رو برگردون که میشه همون قالب پیش فرض وردپرس.

مثال دوم : می خواهیم قالبی اضافه کنیم برای صفحه داخلی پست هایی که در دسته بندی news و article قرار دارند.

می دانیم که term در اینجا برابر news و article است و تکسونومی برابر category است.

تابع has_term سه پارامتر می گیره :

  • پارامتر اول term که اختیاری است. می تونید خالی بزارید ولی خالی نزارید.
  • پارامتر دوم taxonomy است که لازم است.
  • پارامتر سوم پست مربوطه است.

پس در قطعه کد بالا گفته که اگر پست جاری در دسته بندی news بود به فایل news.php برو و اگر در دسته بندی article بود به article.php برو. دقت داشته باشید که مسیر دهی در مثال بالا برحسب فایل جاری هست که از تابع dirname( __FILE__ ) استفاده شده. یعنی فایل تابع و قالب در یک مسیر هستند.

نکته : قبل از این که تمامی فیلترهایی که در قبل توضیح دادیم فراخوانی بشن فیلتر کلی template_include فراخوانی میشه که کلی تر هست و برای تمامی قالب ها نظیر single_template , archive_template , … کاربرد دارد.

مثال سوم : فراخوانی برگه خاص برای برگه ای با نامک portfolio :

بازنویسی قالب های ووکامرس – woocommerce_locate_template

همون طور که می دونید ووکامرس هم یه سری قالب داره که هم میتونید در پوسته خودتون قرارش بدید و یا اگر وجود نداشت به قالب های موجود در خود پلاگین مراجعه کنه. حالا فرض کنید شما دارید یه extension برای پلاگین ووکامرس می نویسید و نیاز دارید تا یه سری قالب های ووکامرس رو بازنویسی و یا از داخل پلاگین خودتون اون رو فراخوانی کنید.

همون طور که در کد بالا می بینید می تونید قالب های ووکامرسی را با استفاده از slug اون ها بازفراخوانی کنید. مثلا در مثال بالا قالب های موجود در دایرکتوری جاری هست برای فراخوانی از تابع dirname( __FILE__ ) استفاده شده. یعنی فایل تابع و فایل های قالب در یک مسیر هستند.

 

مطالب مشابه

Settings API در ووکامرس

ما برای ساخت پنل تنظیمات برای افزونه ها از api خود وردپرس استفاده می کردیم. حال این که افزونه مکمل برای ووکامرس می...

آموزش نکات و تکنیک های برنامه نویسی وردپرس

Settings API در وردپرس

وردپرس برای ساخت پنل تنظیمات شبیه به پنل تنظیمات پیش فرض خودش API هایی رو قرار داده . Settings API , Options API دو...

آموزش نکات و تکنیک های برنامه نویسی وردپرس

Administration Menus در وردپرس

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

اشتراک گذاری :

ابوالفضل صباغ

برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای بازنویسی قالب های وردپرس template hierarchy

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

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