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


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

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

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

از وردپرس 4.7 قالب های برگه کل post type ها را پشتیبانی می کنند. برای اطلاعات بیشتر در مورد چگونگی تنظیم قالب برگه برای post type های خاص مثال زیر را ببینید.

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

  • قالب های برگه برای تغییر دیدگاه و احساس یک برگه استفاده می شود.
  • یک قالب برگه را می توان برای یک برگه یکتا، یک بخش برگه یا کلاسی از برگه ها استفاده کرد.
  • قالب های برگه معمولاً دارای سطح بالایی از ویژگی ها هستند، صفحه یا گروه خاصی از صفحات را شامل می شوند. برای مثال، یک برگه با نام page-about.php خاص تر از فایل های page.php یا index.php است، این فایل تنها بر یک صفحه با موضوع about تاثیر گذار است.
  • اگر برگه قالب دارای یک نام قالب باشد، کاربران وردپرس برگه دارای کنترل را برای این که کدام قالب برای بارگزاری برگه استفاده شود، ویرایش می کنند.

#استفاده از قالب های برگه

قالب های برگه محتوای داینامیک سایت شما را روی یک برگه نمایش می دهند. به عنوان مثال: پست ها، اخبار، بروزرسانی ها، رویدادها، فایل های رسانه ای و غیره. ممکن است شما تصمیم بگیرید که صفحه اصلی خود را کاملاً خاص تر از صفحه های دیگر ببینید که کاملاٌ متفاوت تر از سایر قسمت هاست. یا ممکن است بخواهید یک تصویر شاخص را که به این پست در یک بخش از برگه لینک داده شده است نمایش دهید، لیستی از آخرین پست ها داشته باشید و از یک ناوبری سفارشی استفاده کنید. برای دستیابی به این موارد می توانید از قالب های برگه استفاده نمایید.

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

برای مثال شما می توانید قالب های برگه را بسازید برای:

  • پهنای کامل، یک ستون
  • دو ستون با ساید بار در سمت راست
  • دو ستون با ساید بار در سمت چپ
  • سه ستون

#قالب های برگه در سلسه مراتب قالب

وقتی که شخصی سایت شما را مرور می کند، وردپرس قالب مورد استفاده برای بارگزاری برگه را انتخاب می کند. همانطور که قبلاً در سلسله مراتب یاد گرفتیم، وردپرس به دنبال فایل های قالب به ترتیب زیر است:

  1. قالب های برگه – اگر برگه دارای قالب اختصاصی باشد، وردپرس آن فایل را پیدا کرده و از آن استفاده می کند.
  2. page-{slug}.php – اگر دارای قالب اختصاصی نباشد، وردپرس از قالب تخصصی که محتوای آن با شامل موضوع برگه یکسان است، استفاده می کند.
  3. page-{id}.php – اگر قالب تخصصی که شامل موضوع برگه باشد پیدا نشود، وردپرس از قالب تخصصی که نام قالب با شناسه برگه تطابق داشته باشد، استفاده می کند.
  4. page.php – اگر قالب تخصصی شامل شناسه برگه پیدا نشود، وردپرس از قالب پیش فرض برگه استفاده می کند.
  5. singular.php – اگر page.php پیدا نشود، وردپرس از قالبی که برای پست یکتا استفاده می شود با صرف نظر از نوع پست، استفاده می کند.
  6. index.php – اگر هیچ قالب برگه خاصی تعریف نشده یا پیدا نشود،به صورت پیش فرض وردپرس برای بارگزاری صفحه از index.php استفاده می کند.

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

#هدف قالب های برگه و کنترل کاربر

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

  • آیا قالب برگه برای یک برگه خاص است یا برای همه برگه هاست؛ و
  • چه سطح دسترسی به قالب برای کنترل قالب می دهید.

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

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

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

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

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

#ساماندهی فایل های قالب برگه

همانطور که قبلاٌ در سازماندهی فایل های قالب بحث شد، وردپرس زیر پوشه های page-templates را به رسمیت می شناسد. از این رو، این ایده خوبی است که قالب های با سطح دسترسی عمومی را در این پوشه ذخیره کنید تا بتوانید آن ها را سازماندهی کنید.

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

#ایجاد قالب برگه های سفارشی برای استفاده عموم

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

مهم! از -page به عنوان پیش فرض استفاده نکنید، زیرا وردپرس این فایل را به عنوان یک قالب اختصاصی تفسیر می کند، یعنی تنها یک برگه در سایت شما اعمال می شود.

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

یک روش سریع برای ساخت یک قالب برگه ایجاد کپی از page.php و نامگذاری متمایز آن است. به این ترتیب، شما برگه های دیگر خود را با ساختار HTML شروع می کنید و می توانید فایل جدید را بسته به نیازهایتان ویرایش کنید.

برای ساخت قالب با سطح دسترسی عمومی، یک توضیح php در بالای برگه که نام برگه را مشخص می کند، ایجاد کنید.

ایده خوبی است که نام قالب توصیفی از آنچه که انجام می دهد برای کاربران وردپرسی که می خواهند برگه را ویرایش کنند، باشد. برای مثال، شما می توانید قالب خود را Homepage, Blog, Portfolio نامگذاری کنید.

این مثال از قالب TwentyFourteen یک قالب برگه با نام Full Width Page ایجاد می کند:

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

هنگامی که فایلی به پوشه قالب خود آپلود می کنید (برای مثال page-templates) در پیشخوان مدیر به صفحه برگه > ویرایش بروید.

در سمت دست چپ (فارسی) و دست راست (انگلیسی) زیر ویژگی ها قالب را خواهید دید.

لیست انتخاب دارای حداکثر 250 پیکسل می باشد، بنابراین نام های طولانی تر از این عرض ممکن است قطع شوند.

#ساخت قالب برگه سفارشی برای یک برگه خاص

همانطور که در برگه سلسله مراتب قالب اشاره شده است، شما می توانید قالبی برای یک برگه خاص بسازید. برای ساخت قالب برای یک برگه خاص، از فایل خروجی page.php کپی گرفته و آن را با توجه به شناسه یا موضوع برگه مجدداً نامگذاری کنید.

  1. page-{slug}.php
  2. page{id}.php

برای مثال، برگه About شما دارای یک موضوع با نام about و شناسه 6 می باشد. اگر پوشه قالب فعال شما دارای فایلی با نام page-about.php یا page-6.php باشد، آنگاه وردپرس به صورت خودکار آن فایل را پیدا کرده و برای بارگزاری برگه About از آن استفاده خواهد کرد.

برای استفاده، قالب برگه های خاص باید در پوشه قالب قرار بگیرند. ( برای مثال: /wp-content/themes/my-theme-name/).

#ساخت قالب های برگه برای post type های خاص

به طور پیش فرض، یک قالب برگه سفارشی برای post type برگه در دسترس خواهد بود.

برای ساخت قالب برگه برای post type های خاص، یک خط زیر نام قالب با post type هایی که می خواهید قالبتان پشتیبانی کند، اضافه کنید.

مثال:

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

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

برگشت به عقب:

بگذارید این طور بگوییم که شما می خواهید قالبی را با پشتیبانی از post type ها انتشار دهید. ورژن وردپرس قبل از 4.7 header قالب ارسالی را نادیده گرفته و قالب را لیستی از قالب های برگه در نظر می گیرد، هر چند که فقط برای پست های معمول کار می کند. برای جلوگیری از آن، می توانید به فیلتر theme_page_template قلاب کنید تا آن را از لیست حذف کنید. در اینجا مثالی آورده شده است:

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

توجه داشته باشید که theme_page_template در واقع یک فیلتر داینامیک theme_{$post_type}_templates می باشد. بخش داینامیک قلاب (هوک، post_type$) اشاره به post type پشتیبانی شده توسط قالب دارد. برای مثال، شما می توانید از قلاب theme_product_template برای فیلتر کردن لیست قالب ها برای انواع post type ها استفاده کنید.

#استفاده از تگ های شرطی در قالب های برگه

شما می توانید برگه های خاص را با تغییرات تگ های شرطی در فایل page.php، کوچکتر بسازید. برای نمونه، در مثال زیر کد فایل header-home.php را برای برگه فرانت شما بارگزاری می کند، اما برای برگه About شما فایل دیگری (header-about.php) را بارگزاری می کند، و سپس به طور پیش فرض header.php را برای تمام برگه ها اعمال می کند.

در اینجا می توانید بیشتر در مورد تگ های شرطی مطالعه کنید.

#تشخیص یک قالب برگه

اگر قالب شما از تابع ()body_class استفاده می کند، وردپرس برای کلاس با نام (page) کلاس های آن را در تگ body چاپ می کند، برای شناسه برگه ها ({page-id-{ID)  و قالب برگه از آن استفاده می کند. برای page.php به صورت پیش فرض، نام کلاس page-template-default تولید می شود:

همچنین یک قالب خاص (page-{slug}.php یا page-{id}.php) به جای کلاس body خود page-template-default می گیرند.

هنگامی که از یک قالب برگه سفارشی استفاده می کنید، کلاس page-template همراه با یک نام کلاس قالب سفارشی، چاپ خواهد شد. برای مثال، اگر نام فایل قالب برگه سفارشی شما همچون زیر باشد:

پس html که تولید می شود همانند زیر خواهد بود:

توجه داشته باشید که کلاس page-template-my-custom-page-php به تگ body اعمال می شود.

#توابع قالب برگه

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

  • ()get_page_template مسیر استفاده شده قالب برگه برای رندر برگه را برمی گرداند.
  • ()wp_get_theme()->get_page_templates همه قالب های برگه سفارشی در دسترس را به قالب فعال فعلی برمی گرداند (()get_page_templates  یک متد از کلاس WP_Theme می باشد ).
  • ()is_page_template بسته به این که آیا قالب برگه سفارشی برای رندر برگه استفاده شده است یا خیر، true یا false برمی گرداند.
  • ()get_page_template_slug مقدار فیلد سفارشی wp_page_templateرا برمی گرداند (هنگامی که مقدار خالی یا پیش فرض باشد null را برمی گرداند). اگر یک برگه یک قالب سفارشی داشته باشد، نام فایل قالب به عنوان مقدار فیلد سفارشی با نام ‘wp_page_template_‘ ذخیره (در جدول wp_postmeta پایگاه داده) می شود. (زمینه های سفارشی که با زیر خط شروع می شوند، در ماژول ویرایش صفحه نمایش داده نمی شوند).



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