Template Hierarchy در وردپرس چگونه کار می کند؟

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

برای اینکه بتوانید به راحتی صفحات قالب وردپرس خود را سفارشی سازی کنید، می باید حتما با جزئیات نحوه کار Template Hierarchy در وردپرس آشنا شوید. به این صورت می توانید هر صفحه ای را به دلخواه مورد ویرایش قرار دهید.

Template Hierarchy چگونه کار می کند؟

شرح کامل جزئیات نحوه کار Template Hierarchy

در قسمت قبل، به صورت ابتدایی در مورد ساختار سلسله مراتبی قالب وردپرس ، توضیحات اولیه ای ارائه شد. فهم نحوه کار Template Hierarchy با توجه به شکل و دیاگرام داده شده در قسمت قبل و همان طور بخش پایین مقاله، بسیار ساده است. از آنجایی که می خواهیم به شرح دقیق تر و با حزئیات کامل نحوه کار وردپرس با  Template Hierarchy بپردازیم، بخش های زیر به طور کامل تشریح می کنند که کدام template file ها به ترتیب برای یک query type وردپرس، مورد فراخوانی قرار می گیرند.

نمایش صفحه خانه یا Home Page

به صورت پیش فرض و در هنگام نصب وردپرس، وردپرس برای نمایش صفحه خانه یا همان Home Page شما، آخرین پست های بلاگ شما را نمایش می دهد. این صفحه با نام blog post index شناخته می شود. شما می توانید برای نمایش پست های مختلف خود، از یک صفحه مجزا به صورت استاتیک نیز استفاده کنید.

در وردپرس از Template File ای با نام home.php برای ساخت صفحه نمایش پست های بلاگ شما یا همان blog post index استفاده می شود.

در نظر داشته باشید شما برای این منظور می تونید از front-page. php یا یک صفحه استاتیک جداگانه نیز برای این منظور استفاده کنید.

وردپرس به ترتیب زیر، برای نمایش home.page استفاده می کند، یعنی اگر home.php موجود نباشد، وردپرس صفحه index.php را به جای آن نمایش خواهد داد.

  1. home.php
  2. index.php

نمایش Front Page یا صفحه نخست سایت شما

در وردپرس از Template File ای با نام front-page.php برای ساخت صفحه اول سایت شما یا همان front page استفاده می شود، اگرچه front page می تواند پست های بلاگ شما یا همان blog post index  را نمایش دهد (همان طور که در بخش قبل بیان شد) و یا یک صفحه استاتیک باشد.

اگر در بخش تنظیمات و زیر شاخه خواندن، صفحه ای برای صفحه نخست شما انتخاب نشده باشد، وردپرس از صفحه نخست سایت شما را، همان آخرین نوشته ها در نظر می گیرید که روال نمایش آن در قسمت قبل بررسی شد، اما در صورتی که در بخش خواندن، یک برگه یکتا برای صفحه نخست خود انتخاب نمایید، در آن صورت ابتدا وردپرس در داخل دایرکتوری قالب به دنبال فایل front-page.php می گردد و در صورت وجود، این فایل را نمایش می دهد.

اگر این فایل موجود نبود و از یک صفحه استاتیک برای این کار استفاده شده باشد، وردپرس از آن صفحه برای نمایش استفاده خواهد کرد. اما اگر دوباره، برای صفحه نخست، صفحه استاتیک هم، وجود نداشته باشد،وردپرس به جستجوی home.php و یا page.php در قالب گشته و در صورت وجود آن ها، این صفحات را به عنوان صفحه نخست یا همان Front Page رندر خواهد کرد.

در صورتی که هیچکدام از این فایل ها در قالب موجود نباشد و همین طور چیزی برای صفحه نخست توسط بخش تنظیمات برای وردپرس موجود نباشد، وردپرس از فایل index.php برای نمایش صفحه نخست سایت شما، استفاده خواهد کرد. با توجه به موارد اشاره شده در بالا، می توانیم ترتیب اولویت نمایش صفحه نخست را به صورت زیر نمایش دهیم:

  1. front-page.php
  2. home.php
  3. page.php
  4. index.php

نمایش یک پست تکی یا Single Post

از Template File ای با نام  single post برای ساخت و نمایش یک پست به صورت منفرد، یا همان Single Post استفاده می شود.

در ابتدا وردپرس قالب را آن پست خاص مورد جستجو قرار می دهد، به عنوان مثال اگر یک نوع پست سفارشی با نام product وجود داشته باشد و وردپرس بخواهد تا پستی با نام msn-22 موجود در product را نمایش دهد، ابتدا در قالب وردپرس به دنبال فایل  single-product-msn-22.php می گردد و در صورت یافتن آن، محتوای آن template file را برای نمایش به کاربر بر می گرداند.

در صورتی که این فایل قبلی، موجود نباشد، وردپرس به دنبال فایل مربوط به صفحه Single پست سفارشی product می گردد. حال اگر فایلی با نام single-product.php را بیابد، همان را به عنوان نتیجه به کاربر بازگشت می دهد.

اگر باز هم template file خاصی برای پست سفارشی product موجود نباشد، وردپرس به سراغ فایل single.php می رود و در صورتی که بازهم این فایل موجود نباشد، وردپرس به سراغ فایل singular.php می رود تا آن را به عنوان نتیجه  به کاربر برگرداند.

در صورتی که هیچ کدام از این موارد در قالب شما یافت نشود، وردپرس فایل index.php را به عنوان template file مورد نیازش، در نظر گرفته و از آن برای ساخت و نمایش یک پست به صورت مجزا، استفاده می کند.

برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان صفحه پست رندر می کند:

  1. single-{post-type}-{slug}.php 
  2. single-{post-type}.php
  3. single.php 
  4. singular.php
  5. index.php 

نمایش یک صفحه تکی یا Single Page

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

شما می توانید برای ساخت یک صفحه، از یک page template خاص استفاده کنید که این قالب صفحه، می تواند به یک یا چندین صفحه اختصاص داده شده باشد. بنابراین در ابتدا وردپرس به در بین Template File  موجود در قالب، دنبال page template ای می گردد که برای صفحه استفاده شده است.

در نظر داشته که وردپرس، برای پیدا کردن page template های موجود در یک قالب، وردپرس از تابع get_page_template استفاده می کند.

در صورتی که نتواند page template مخصوص به آن صفحه را پیدا کند، به دنبال فایلی با نام slug صفحه مورد نظر می گردد.

به عنوان مثال اگر slug یک صفحه برابر با sports باشد، بنابراین وردپرس به دنبال یک فایل با نام  page-sports.php در قالب می گردد و در صورت یافتن آن، Template File  مد نظر را به عنوان جواب درخواست، رندر خواهد کرد.

اگر این فایل در قالب وردپرس پیدا نشود و به عنوان مثال ID این صفحه برابر با ۱۰ باشد، وردپرس در فایل های قالب به دنبال فایلی با نام page-10.php می گردد تا آن را به عنوان جواب به کاربر برگرداند.

در صورتی که هیچ کدام از موارد فوق را پیدا نکرد، به ترتیب به سراغ فایل های page.php و سپس singular.php رفته و در انتها  در صورت نبود هیچکدام از این فایل ها در بین Template File  های قالب، فایل index.php را به عنوان پاسخ به درخواست باز خواهد گرداند.

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

  1. custom template file 
  2. page-{slug}.php 
  3. page-{id}.php
  4. page.php
  5. singular.php
  6. index.php

نمایش یک دسته بندی یا Category

برای نمایش یک صفحه دسته بندی در وردپرس از Template File های که از آن ها با نام category archive یاد می گردد، استفاده می شود.

برای این منظور، اگر وردپرس به دنبال دسته بندی ای با نام sports باشد که آیدی آن مثلا ۱۰ می باشد، ابتدا فایل category-sports.php را مورد جستجو قرار داده و در صورت نیافتن آن سپس به دنبال category-10.php خواهد گشت.

در صورتی که به هر دلیل نتواند این فایل ها را پیدا نماید، به ترتیب به سراغ یافتن category.php و سپس archive.php خواهد رفت و در صورت موجود نبودن هیچکدام از آن ها، فایل index.php را به عنوان فایل نهایی به عنوان  Template File مورد نظر، انتخاب خواهد کرد.

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

  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

نمایش یک برچسب یا Tag

برای نمایش یک صفحه برچسب یا Tag، در وردپرس از Template File های که از آن ها با نام tag archive یاد می گردد، استفاده می شود.

برای این منظور، اگر وردپرس به دنبال برچسبی ای با نام sports باشد که آیدی آن مثلا ۱۰ می باشد، ابتدا فایل tag-sports.php را مورد جستجو قرار داده و در صورت نیافتن آن سپس به دنبال tag-10.php خواهد گشت.

در صورتی که به هر دلیل نتواند این فایل ها را پیدا نماید، به ترتیب به سراغ یافتن tag.php و سپس archive.php خواهد رفت و در صورت موجود نبودن هیچکدام از آن ها، فایل index.php را به عنوان فایل نهایی به عنوان  Template File مورد نظر، انتخاب خواهد کرد.

برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه برچسب، نمایش خواهد داد:

  1. tag-{slug}.php
  2. tag-{id}.php
  3. tag.php
  4. archive.php
  5. index.php

نمایش یک دسته بندی سفارشی یا Custom Taxonomy

برای نمایش یک صفحه دسته بندی سفارشی در وردپرس از Template File های مخصوص به آن، استفاده می شود. نحوه انجام کار برای این بخش، کمی خاص تر از بقیه قسمت های شرح داده شده در بالا می باشد.

فرض کنید شما یک طبفه بندی سفارشی یا همان custom taxonomy برای محصولات خود، با نام size ایجاد کرده اید. در داخل این طبقه بندی، یک دسته بندی با نام large ایجاد نمودید. برای نمایش دسته بندی large و کلیه دسته بندی های موجود در آن، وردپرس در ابتدا به دنبال فایل taxonomy-size-large.php می گردد.

در نظر داشته باشید در صورتی که از post format خاصی برای این طبقه بندی استفاده کرده باشید، وردپرس از ساختاری به صورت taxonomy-post_format-post-format-link.php  برای جستجوی فایل مورد نظر، استفاده خواهد کرد.

در صورت نیافتن فایل بالا، وردپرس به دنبال فایل taxonomy-size.php  خواهد گشت و در صورت نیافتن این فایل به ترتیب فایل های قالب وردپرس شما را، برای یافتن فایل های taxonomy.php و سپس archive.php جستجو خواهد کرد.

در انتها نیز، مانند سایر موارد مشابه و در صورت نیافتن فایل های پیشین، فایل index.php را به برای نمایش دسته بندی سفارشی، انتخاب خواهد نمود.

برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه دسته بندی یا برچسب سفارشی، نمایش خواهد داد:

  1. taxonomy-{taxonomy}-{term}.php
  2. taxonomy-{taxonomy}.php
  3. taxonomy.php
  4. archive.php
  5. index.php

نمایش صفحه کاربر یا Author Display

برای نمایش یک صفحه کاربر در وردپرس از Template File های مخصوص به آن، استفاده می شود. نحوه انجام کار برای این بخش،همانند سایر قسمت های شرح داده شده در بالا می باشد.

فرض کنید شما یک کاربر با نام mehdi یا همان nice name برابر با mehdi می باشید. بنابراین وردپرس ابتدا فایل های قالب را برای یافتن فایلی با نام author-mehdi.php مورد جستجو قرار می دهد.  در صورتی که بتواند این فایل را پیدا کند، بلافاصله همان را به عنوان صفحه کاربر، نمایش خواهد داد.

در صورتی که ID مربوط به کاربر mehdi در پایگاه داده سایت وردپرس شما برابر ۲۰ باشد، آنگاه در صورت نیافتن فایل بالا، وردپرس شروع به جستجو برای یافتن فایل author-20.php خواهد کرد. در صورت نیافتن این فایل، وردپرس به ترتیب به سراغ فایل های author.php و همین طور archive.php خواهد رفت. در صورتی که هیچکدام از فایل های بالا، در قال شما موجود نباشد، وردپرس فایل index.php موجود در قالب را به عنوان صفحه کاربر mehdi ، نمایش خواهد داد.

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

  1. author-{nicename}.php 
  2. author-{id}.php
  3. author.php
  4. archive.php
  5. index.php

نمایش صفحه بر اساس تاریخ یا Date

وردپرس برای نمایش صفحات بایگانی یا همان archive index page هایی که بر اساس زمان مرتب شده اند، از اولیت بندی زیر برای جستجو در بین فایل های theme استفاده می کند:

  1. date.php
  2. archive.php
  3. index.php

نمایش صفحه نتایج جستجو در وردپرس یا Search Result

وردپرس برای نمایش صفحه نتایج جستجو یا همان صفحه search از اولویت زیر در دایرکتوری theme سایت شما، استفاده می کند:

  1. search.php
  2. index.php

نمایش صفحه ۴۰۴ یا Not Found

همانند سایر موارد، وردپرس برای نمایش صفحه ۴۰۴ در سایت شما، از ترتیب زیر برای نمایش این صفحه استفاده خواهد کرد:

  1. ۴۰۴.php
  2. index.php

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

شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید: