دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • مرداد

جلسه ۰۷ : سلسله مراتب فایل های قالب

  • دسته‌بندی‌ها :
جلسه ۰۷ : سلسله مراتب فایل های قالب

        با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
        با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
        در این جلسه قصد داریم به معرفی سلسله مراتب فایل های قالب (Template Files) وردپرس خواهیم پرداخت.

        مقدمه

        همانطور که در جلسات قبل اشاره کردیم، فایل های قالب ماژولار و قابل استفاده مجدد هستند و برای نمایش صفحات سایت شما استفاده می‌شوند.
        بعضی از فایل های قالب مانند هدر و فوتر در تمامی صفحات سایت قرار دارند در حالی که بقیه فایل ها فقط در بعضی از صفحات با شرایط تعیین شده قرار دارند.

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

        سلسله مراتب فایل های قالب

        وردپرس از query_string برای تصمیم در مورد اینکه کدام فایل یا فایل های قالب باید برای نمایش صفحه استفاده شوند، استفاده می‌کند.
        query_string اطلاعاتی هست که در لینک هر بخش وب سایت موجود است.
        query_string در url بعد از علامت سوال (?) می‌آید و ممکن است شامل تعدادی پارامتر باشد که با & از یکدیگر جدا می‌شوند.

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

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

        1. بررسی هر query_string با یک query type برای شناسایی صفحه درخواست شده.(برای مثال صفحه جستجو، صفحه دسته بندی و …)
        2. انتخاب فایل قالب مناسب با توجه به سلسله مراتب قالب.
        3. به دنبال فایل های قالب با نام مشخص در دایرکتوری جاری قالب می‌گردد و از اولین فایل قالب مطابقت داده شده توسط سلسله مراتب استفاده می‌کند.

        به استثناء فایل index.php، شما می‌توانید تعیین کنید که کدام فایل قالب را می‌خواهید اجرا کنید.

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

        اجازه دهید تا با یک مثال موضوع را روشن تر کنیم:

        فرض کنید بلاگ شما در http://example.com/blog قرار دارد و بازدید کننده روی لینک یک صفحه دسته بندی مانند http://example.com/blog/category/your-cat کلیک می‌کند. وردپرس به دنبال یک فایل قالب در دایرکتوری جاری قالب می‌گردد که با ID دسته بندی (Category) مطابقت کند تا بتواند صفحه درست را تولید کند.
        به طور دقیق تر وردپرس مراحل زیر را انجام می‌دهد:

        1. جستجو در دایرکتوری جاری قالب برای فایل قالبی که با slug دسته بندی (category) مطابقت کند. اگر slug دسته بندی “unicorn” باشد، وردپرس به دنبال فایل قالبی با نام category-unicorns.php می‌گردد.
        2. اگر فایل قالب category-unicorns.php موجود نباشد و ID دسته بندی ۴ باشد، وردپرس به دنبال فایل category-4.php می‌گردد.
        3. اگر فایل category-4.php نیز نباشد، وردپرس به دنبال فایل قالب category.php عمومی می‌گردد.
        4. اگر فایل category.php موجود نباشد، وردپرس به سراغ فایل archive.php می‌رود.
        5. اگر فایل archive.php نیز موجود نباشد، سرانجام وردپرس فایل index.php را انتخاب می‌کند.

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

        همچنین می‌توانید سایت wphierarchy.com را مشاهده کنید.

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

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

        در ادامه نحوه فراخوانی فایل های قالب پیش‌فرض توسط وردپرس را توضیح می‍دهیم. (بر اساس نمودار بالا)

        در هر مرحله، اگر فایل مورد نظر پیدا نشد، سراغ مرحله بعدی می‌رویم.

        نمایش صفحه Home

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

        1. home.php
        2. index.php

        اگر front-page.php وجود داشته باشد، از home.php اولویت بالاتری دارد و آن نمایش داده می‌شود.

        نمایش front page

        front page برای نمایش ایندکس پست های بلاگ یا یک صفحه ایستا استفاده می‌شود.
        front-page.php در برابر home.php اولویت دارد. اگر frant-page.php وجود نداشته باشد، وردپرس از فایل home.php یا page.php (بسته به تنظیمات) استفاده می‌کند. و طبق معمول اگر هیچ کدام از فایل وجود نداشته باشند، فایل index.php استفاده می‌شود.

        نمایش Single post

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

        1. single-{post-type}-{slug}.php : وردپرس ابتدا به دنبال یک فایل قالب برای پست مشخص شده می‌گردد. برای مثال اگر نوع پست product باشد و slug برابر dmc-12 باشد، وردپرس به دنبال single-product-dmc-12.php می‌گردد.
        2. single-{post-type}.php : اگر نوع پست product باشد، وردپرس به دنبال single-product.php می‌گردد.
        3. single.php : سپس وردپرس به single.php برمی‌گردد.
        4. singular.php : سپس به singular.php
        5. index.php : سرانجام، وردپرس به index.php برمی‌گردد.

        نمایش Category

        از طریق مراحل زیر برای نمایش دسته بندی صفحات ایندکس شده استفاده می‌کنیم:

        1. category-{slug}.php : اگر slug دسته بندی “news” باشد، وردپرس به دنبال category-news.php می‌گردد.
        2. category-{id}.php : اگر ID دسته بندی ۶ باشد، وردپرس به دنبال category-6.php می‌گردد.
        3. category.php
        4. archive.php
        5. index.php

        نمایش Tag

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

        نمایش Custom post Types

        1. archive-{post-type}.php
        2. archive.php
        3. index.php

        نمایش Author

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

        نمایش Date

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

        نمایش Search

        1. search.php
        2. index.php

        نمایش ۴۰۴

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

        فیلتر سلسله مراتب

        وردپرس این امکان را به ما می‌دهد تا بتوانیم سلسله مراتب قالب را فیلتر و شخصی سازی کنیم.
        بدین معنا که می‌توایم فایل های قالب را در سلسله مراتب تغییر دهیم یا آن ها را حذف و اضافه کنیم.
        فیلتر (که در تابع ()get_query_template قرار دارد) از نام فیلتر رو به رو استفاده می‌کند : type}_template$} که به جای type$ نوع قالب قرار می‌گیرد.

        در ادامه لیستی از فیلتر ها را نمایش می‌دهیم:

        • embed_template
        • template_404
        • search_template
        • frontpage_template
        • home_template
        • taxonomy_template
        • attachment_template
        • single_template
        • page_template
        • singular_template
        • category_template
        • tag_template
        • author_template
        • date_template
        • archive_template
        • index_template

        مثال

        برای مثال سلسله مراتب author را درنظر بگیرید:

        • author-{nicename}.php
        • author-{id}.php
        • author.php

        برای اضافه کردن author-{role}.php به قبل از author.php، از کد زیر استفاده می‌کنیم:

        مثال : 

         

         

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

        در جلسه بعد به آموزش Template Tag ها خواخیم پرداخت.

        QR:  جلسه ۰۷ : سلسله مراتب فایل های قالب
        به اشتراک بگذارید