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 را به جای آن نمایش خواهد داد.
home.php
index.php
override شدن فایل home.php در صورت وجود front-page.php
با اینکه home.php می تواند به عنوان صفحه خانه سایت شما توسط وردپرس نمایش داده شود، اما در نظر داشته باشید در صورتی که فایل front-page.php در قالب موجود باشد، برای نمایش صفحه خانه، این فایل اولیت بالاتری داشته و به جای home.php نمایش داده می شود (یعنی فایل front-page.php در صورت وجود، فایل home.php را override خواهد کرد)
نمایش 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 برای نمایش صفحه نخست سایت شما، استفاده خواهد کرد. با توجه به موارد اشاره شده در بالا، می توانیم ترتیب اولویت نمایش صفحه نخست را به صورت زیر نمایش دهیم:
front-page.php
home.php
page.php
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 مورد نیازش، در نظر گرفته و از آن برای ساخت و نمایش یک پست به صورت مجزا، استفاده می کند.
برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان صفحه پست رندر می کند:
single-{post-type}-{slug}.php
single-{post-type}.php
single.php
singular.php
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 را به عنوان پاسخ به درخواست باز خواهد گرداند.
برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه تنها، نمایش خواهد داد:
custom template file
page-{slug}.php
page-{id}.php
page.php
singular.php
index.php
نمایش یک دسته بندی یا Category
برای نمایش یک صفحه دسته بندی در وردپرس از Template File های که از آن ها با نام category archive یاد می گردد، استفاده می شود.
برای این منظور، اگر وردپرس به دنبال دسته بندی ای با نام sports باشد که آیدی آن مثلا ۱۰ می باشد، ابتدا فایل category-sports.php را مورد جستجو قرار داده و در صورت نیافتن آن سپس به دنبال category-10.php خواهد گشت.
در صورتی که به هر دلیل نتواند این فایل ها را پیدا نماید، به ترتیب به سراغ یافتن category.php و سپس archive.php خواهد رفت و در صورت موجود نبودن هیچکدام از آن ها، فایل index.php را به عنوان فایل نهایی به عنوان Template File مورد نظر، انتخاب خواهد کرد.
برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه دسته بندی، نمایش خواهد داد:
category-{slug}.php
category-{id}.php
category.php
archive.php
index.php
نمایش یک برچسب یا Tag
برای نمایش یک صفحه برچسب یا Tag، در وردپرس از Template File های که از آن ها با نام tag archive یاد می گردد، استفاده می شود.
برای این منظور، اگر وردپرس به دنبال برچسبی ای با نام sports باشد که آیدی آن مثلا ۱۰ می باشد، ابتدا فایل tag-sports.php را مورد جستجو قرار داده و در صورت نیافتن آن سپس به دنبال tag-10.php خواهد گشت.
در صورتی که به هر دلیل نتواند این فایل ها را پیدا نماید، به ترتیب به سراغ یافتن tag.php و سپس archive.php خواهد رفت و در صورت موجود نبودن هیچکدام از آن ها، فایل index.php را به عنوان فایل نهایی به عنوان Template File مورد نظر، انتخاب خواهد کرد.
برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه برچسب، نمایش خواهد داد:
tag-{slug}.php
tag-{id}.php
tag.php
archive.php
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 را به برای نمایش دسته بندی سفارشی، انتخاب خواهد نمود.
برای اینکار اولیت های زیر توسط وردپرس بررسی شده و با دیدن اولین فایل موجود، آن را به عنوان یک صفحه دسته بندی یا برچسب سفارشی، نمایش خواهد داد:
taxonomy-{taxonomy}-{term}.php
taxonomy-{taxonomy}.php
taxonomy.php
archive.php
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 ، نمایش خواهد داد.
وردپرس برای پیدا کردن فایل مورد نظر، بر اساس اولویت های زیر عمل کرده و فایل های قالب سایت شما را مورد جستجو قرار خواهد داد.
author-{nicename}.php
author-{id}.php
author.php
archive.php
index.php
نمایش صفحه بر اساس تاریخ یا Date
وردپرس برای نمایش صفحات بایگانی یا همان archive index page هایی که بر اساس زمان مرتب شده اند، از اولیت بندی زیر برای جستجو در بین فایل های theme استفاده می کند:
date.php
archive.php
index.php
نمایش صفحه نتایج جستجو در وردپرس یا Search Result
وردپرس برای نمایش صفحه نتایج جستجو یا همان صفحه search از اولویت زیر در دایرکتوری theme سایت شما، استفاده می کند:
search.php
index.php
نمایش صفحه ۴۰۴ یا Not Found
همانند سایر موارد، وردپرس برای نمایش صفحه ۴۰۴ در سایت شما، از ترتیب زیر برای نمایش این صفحه استفاده خواهد کرد:
۴۰۴.php
index.php
راهنما برای مطالعه بیشتر:
شما می توانید از لینک های زیر برای مطالعه بیشتر استفاده نمایید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
damet garm che matlabe jameo zibao ba hoselei
سلام به شما دوست عزیز
از شما بسیار ممنونم که وقت ارزشمند خودتون رو گذاشتید تا برای ما پیام ارسال کنید.
پیام های محبت آمیز شما، باعث ادامه راه توسط ما خواهد شد.
از لطف و محبت شما بسیار سپاسگزارم