طراحی سایت با وردپرس قسمت نهم


طراحی سایت با وردپرسوردپرس 

طراحی سایت با وردپرس قسمت نهم

در طراحی سایت با وردپرس قسمت نهم به سلسله مراتب ساختار قالب می پردازیم:

همانطور که بحث شد‌‌، فایل های قالب که ماژولار هستند ( یعنی قابلیت استفاده مجدد دارند ) ، برای تولید صفحات وب در سایت وردپرس استفاده می شوند. برخی از فایل های قالب ( همانند قالب header و footer ) در تمام صفحات سایت شما استفاده می شوند، در حالی که فایل های دیگر تحت شرایط خاصی مورد استفاده واقع می گیرد.

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

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

#سلسله مراتب قالب

#بررسی کوتاه

وردپرس از query string برای تصمیم گیری، که کدام قالب استفاده شود یا تنظیم قالب هایی که باید برای نمایش صفحه به کار برده شود، استفاده می کند. query string اطلاعاتی است که شامل لینک موجود به هر بخش از وب سایت شما می باشد. بعد از علامت سوال در اول می آید و ممکن است شامل تعدادی از پارامترهای جدا شده توسط ampersands (&) باشد.

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

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

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

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

#مثال ها

اگر وبلاگ شما در آدرس /http://example.com/blog قرار دارد و بازدیدکننده روی یک پیوند همانند /http://example.com/blog/category/your-cat برای دسته بندی کلیک نماید، وردپرس فایل قالب در دایرکتوری پوسته را که با شناسه دسته بندی تولید شده در صفحه جاری تطابق دارد، جستجو می کند. به طور خاصی، وردپرس از روش های زیر بهره می برد:

  1. جستجوی یک فایل قالب در دایرکتوری پوسته جاری که با slug دسته بندی مطابقت دارد. اگر slug دسته بندی تک شاخه باشد، پس وردپرس به جستجوی یک فایل قالب با نام category-unicorns.php می پردازد.
  2. اگر category-unicorns.php پیدا نشود و شناسه دسته بندی ۴ باشد، وردپرس به جستجوی یک فایل قالب با نام category-4.php می پردازد.
  3. اگر category-4.php پیدا نشود، وردپرس یک فایل قالب دسته بندی عمومی، category.php را جستجو خواهد کرد.
  4. اگر category.php وجود نداشته باشد، وردپرس یک فایل آرشیو عمومی، archive.php را جستجو خواهد کرد.
  5. اگر archive.php نیز پیدا نشود، وردپرس به قالب صفحه اصلی، index.php باز خواهد گشت.

#بررسی تصویری

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

طراحی سایت با وردپرس قسمت نهمشما همچنین می توانید با این نمودار تعامل داشته باشید.

#جزییات سلسله مراتب قالب

در حالی که درک سلسله مراتب قالب به عنوان یک نمودار آسان است، بخش های زیر به منظور توصیف فایل های قالب می باشند که توسط وردپرس برای شماری از query types فراخوانی می شوند.

#نمایش صفحه خانگی

به طور پیش فرض، وردپرس صفحه خانگی سایت شما را برای نمایش آخرین پست های بلاگ تنظیم می کند. همچنین شما قادر به تنظیم نمایش پست های بلاگ در یک صفحه ایستای جداگانه می باشید. فایل قالب home.php برای ارائه پست های اصلی بلاگ استفاده می شود، چه در ابتدا به عنوان front page یا روی صفحه ایستای جداگانه استفاده شود. اگر home.php وجود نداشته باشد، وردپرس از index.php استفاده خواهد کرد.

  1. home.php
  2. index.php

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

#نمایش Front Page

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

  1. front-page.php – در هر دو “آخرین پست های شما” یا “یک صفحه جداگانه” همانند تنظیم نمایش بخش front page در تنظیمات -> خوانایی، مورد استفاده قرار می گیرد.
  2. home.php – اگر وردپرس front-page.php را پیدا نکند و “آخرین پست های شما” در بخش نمایش front page تنظیم شده باشد، وردپرس home.php را جستجو خواهد کرد. علاوه بر این، وردپرس این فایل را جستجو خواهد کرد زمانی که صفحه پست ها در بخش نمایش front page تنظیم شده باشند.
  3. page.php – زمانی که “front page” در بخش نمایش front page تنظیم شده باشد.
  4. index.php – زمانی که “آخرین پست های شما” در بخش نمایش front page تنظیم شده باشند اما home.php وجود نداشته باشد یا زمانی که front page تنظیم شده باشد اما page.php وجود نداشته باشد.

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

#پست یکتا

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

  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 بازگشت داده می شود.

#برگه یکتا

این فایل قالب برای ارایه یک برگه جداگانه (page post-type) استفاده می شود. توجه داشته باشید که شبیه دیگر post-types ها نیست، برگه برای وردپرس ویژه می باشد و در مسیر زیر استفاده می شود:ب

  1. فایل قالب شخصی – قالب برگه به برگه اختصاص داده می شود. ()get_page_template را ببینید.
  2. page-{slug}.php – اگر slug برگه recent-news باشد، وردپرس به جستجو و استفاده از page-recent-news.php می پردازد.
  3. page-{id}.php – اگر شناسه برگه ۶ باشد، وردپرس به جستجو و استفاده از page-6.php می پردازد.
  4. page.php
  5. singular.php
  6. index.php

#دسته بندی

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

  1. category-{slug}.php – اگر slug دسته بندی news باشد، وردپرس به جستجوی category-news.php خواهد پرداخت.
  2. category-{id}.php – اگر شناسه دسته بندی ۶ باشد، وردپرس به جستجوی category-6.php خواهد پرداخت.
  3. category.php
  4. archive.php
  5. index.php

#تگ یا برچسب

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

  1. tag-{slug}.php – اگر slug تگ sometag باشد، وردپرس tag-sometag.php را جستجو خواهد کرد.
  2. tag-{id}.php – اگر شناسه تگ ۶ باشد، وردپرس tag-6.php را جستجو خواهد کرد.
  3. tag.php
  4. archive.php
  5. index.php

#طبقه بندی سفارشی

طبقه بندی سفارشی در یک مسیر متفاوت با فایل قالب استفاده می شود:

  1. taxonomy-{taxonomy}-{term}.php – اگر طبقه بندی sometax باشد، و دوره طبقه بندی someterm باشد، وردپرس taxonomy-sometax-someterm.php را جستجو خواهد کرد. در مورد فرمت های پست، طبقه بندی ‘post_format’ و دوره ‘post-format-{format}’ می باشد. برای مثال، taxonomy-post_format-post-format-link.php برای فرمت پست پیوند.
  2. taxonomy-{taxonomy}.php – اگر طبقه بندی sometax بود، وردپرس taxonomy-sometax.php را جستجو خواهد کرد.
  3. taxonomy.php
  4. archive.php
  5. index.php

#انواع پست های سفارشی

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

  1. archive-{post_type}.php – اگر نوع پست product باشد، وردپرس archive-product.php را جستجو خواهد کرد.
  2. archive.php
  3. index.php

(برای ارایه قالب پست یکتا، به نمایش پست یکتا در بالا مراجعه کنید).

#نمایش نویسنده

بر اساس مثال های بالا، ارایه صفحات آرشیو نویسنده نسبتاً توضیحی از مثال های بالاست:

  1. author-{nicename}.php – اگر نام اول نویسنده matt باشد، وردپرس author-matt.php را جستجو خواهد کرد.
  2. author-{id}.php – اگر شناسه نویسنده ۶ باشد، وردپرس author-6.php را جستجو خواهد کرد.
  3. author.php
  4. archive.php
  5. index.php

#تاریخ

صفحات آرشیو تاریخی که ارایه شده و از شما انتظار می رود:

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

#نتیجه جستجو

نتایج جستجو همانند انواع دیگر قالب ها الگوی مشترکی را دنبال می کنند:

  1. search.php
  2. index.php

#۴۰۴ (برگه پیدا نشد)

به همین ترتیب، فایل های قالب ۴۰۴ در این سفارش فراخوانی می شوند:

  1. 404.php
  2. index.php

#پیوست

یک صفحه پیوست را ارایه می دهد (attachment post-type) در مسیر زیر استفاده می شود:

  1. {MIME-type}.php – می تواند هر MIME type باشد ( برای مثال: image.php, video.php, pdf.php ). برای text/plain مسیر زیر را برای استفاده ( سفارشی ) دنبال کنید:
    1. text-plain.php
    2. plain.php
    3. text.php
  2. attachment.php
  3. single-attachment-{slug}.php – برای مثال، اگر slug پیوست holiday باشد، وردپرس single-attachment-holiday.php را جستجو خواهد کرد.
  4. single-attachment.php
  5. single.php
  6. singular.php
  7. index.php

#جاسازی

فایل قالب embed برای این که چگونه یک پست embedded باشد استفاده می شود. از نسخه ۴٫۵ به بعد، وردپرس از مسیر زیر استفاده می کند:

  1. embed-{post-type}-{post_format}.php – در ابتدا، وردپرس یک فایل قالب برای پست خاص جستجو می کند. برای مثال، اگر نوع پست post باشد و دارای فرمت audio باشد، وردپرس باید embed-post-audio.php را جستجو کند.
  2. embed-{post-type}.php – اگر نوع پست product باشد، وردپرس باید embed-product.php را جستجو کند.
  3. embed.php – وردپرس embed.php را برمی گرداند.
  4. سرانجام، وردپرس در نهایت قالب شخصی خود wp-includes/theme-compat/embed.php را برمی گرداند.

#Non-ASCII Character Handling

بعد از وردپرس نسخه ۴٫۷، هر بخش داینامیک از یک نام قالب که شامل non-ASCII characters در نام واقعی باشد توسط هر دو فرم un-encoded و encoded بدین منظور پشتیبانی می شوند. شما می توانید هر کدام را که استفاده می کنید برگزینید.

در اینجا سلسله مراتب قالب در یک برگه با نام “Hello World ?” با شناسه ۶ وجود دارد:

  • page-hello-world-?.php
  • page-hello-world-%f0%9f%98%80.php
  • page-6.php
  • page.php
  • singular.php

رفتار یکسان به slug های پست، نام های دوره و دیگر نام های اول نویسنده اعمال می شود.

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

سیستم قالب وردپرس به شما اجازه می دهد تا سلسله مراتب را فیلتر نمایید. این بدان معنی است که شما می توانید بیافزایید و همه چیز در نقاط خاص از سلسله مراتب را تغییر دهید. فیلتر (واقع در تابع ()get_query_template) توسط نام فیلتر استفاده می شود: "{type$}_template" هنگامی که type$ نوع قالب باشد.

در اینجا یک لیست از فیلترهای در دسترس برای سلسله مراتب قالب وجود دارد:

  • embed_template
  • 404_template
  • 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-{nicename}.php
  • author-{id}.php
  • author.php

برای افزودن author-{role}.php قبل از author.php، می توانیم با استفاده از نوع قالب ‘author_template’ سلسله مراتب فعلی را دستکاری کنیم. این کار اجازه می دهد تا یک درخواست برای /author/username که در آن نام کاربری نقش یک ویرایشگر را ایفا می کند ارسال کنیم و  author-editor.php در صورت وجود در دایرکتوری پوسته فعلی نمایش داده شود.

می توانید کد این بخش را برای درک بهتر دانلود نمایید.

در ادامه به تگ های قالب می پردازیم همچنین می توانید در قسمت قبل ساماندهی فایل های قالب را مطالعه نمایید.




مطالب مرتبط با این دسته بندی