Template Files در وردپرس – مقدمه:

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

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

template files در وردپرس

template files در وردپرس بسیار در قالب های وردپرس مورد استفاده قرار می گیرند اما در ابتدا اجازه بدهید که درباره واژه یا همان terminology کلمه template و اینکه کجاها به کار می رود، صحبت کنیم.

واژه شناسی کلمه template  یا Template Terminology

کلمه template وقتی در قالب های وردپرس کار می کنید، به چندین معنی مختلف مورد استفاده قرار می گیرد:

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

  • این واژه در template page نیز مورد استفاده قرار می گیرد. Template page ها در واقع فایل هایی هستند که شما می توانید فقط آن ها را در page ها یا صفحات خود در وردپرس استفاده کنید. این فایل ها باعث می شوند تا ظاهر صفحه شما و شکل و شمایل و استایل آن، تغییر کند.

    Template page ها می توانند بر روی یک single page یا بخشی از یک صفحه (یا همان page section ) و یا کلاسی از صفحه ها بکار گرفته شوند.

  • مورد دیگر استفاده واژه template در template tags می باشد. Template tag ها، توابع داخلی یا همان توابع built-in وردپرس می باشند که شما می توانید از آن ها، در داخل template file های خود برای دریافت و نمایش اطلاعات مورد نظر خود، استفاده کنید. توابعی مثل the_title یا the_content در واقع نمونه هایی از template tags  می باشند.

  • آخرین مورد استفاده واژه template در template hierarchy می باشد. ساختار سلسله مراتبی قالب وردپرس یا همان template hierarchy ، منطق و قوانینی می باشد که وردپرس بر اساس آن تصمیم گیری می کند که از کدام template file ها برای نمایش صفحه شما به کاربر سایت تان، استفاده کند.

    در واقع هسته وردپرس با استفاده از template  hierarchy تصمیم می گیرد که بسته به محتوای درخواست شده، از کدام template files در وردپرس برای پاسخگویی به کاربر سایت استفاده کند.

Template Files در وردپرس

قالب های وردپرس از Template file ها درست شده اند. Template Files در وردپرس، همان فایل های PHP هستند که شامل مخلوطی از کدهای HTML و Template Tags ها و کدهای PHP می باشند.

زمانی که شما قالب خود را می سازید، در واقع از template files ها برای اثر گذاشتن بر نحوه صفحه بندی سایت خود (یا همان layout سایت) و طراحی قسمت های مختلف وب سایت خود استفاده می کنید.

به عنوان مثال شما از Template file ای با نام header.php استفاده می کنید تا بخش header در کدهای صفحه سایت خود را بسازید یا از فایل template ای با نام comment.php استفاده می کنید که شامل بخش نمایش نظرات در صفحات سایت شما می باشد.

زمانی که یک نفر از یک صفحه از سایت شما بازدید می کند، هسته وردپرس بسته به درخواستی که بازدید کننده دارد، template (یا template های) مورد نظری را، برای نمایش آن صفحه بارگذاری می کند. نوع محتوایی که به توسط template files در وردپرس به نمایش در می آید، با توجه به Post Type مربوط به آن template file  تعیین می گردد. در واقع هسته وردپرس تصمیم می گیرد که نوع محتوای درخواستی توسط کاربر به چه Post type ای متعلق بوده و بر طبق آن، template file های مربوط به آن Post Type را برای نمایش به کاربر، آماده می کند.

ساختاری که هسته وردپرس تشخیص می دهد که چگونه  Template File مورد نظر را برای درخواست رسیده شده، بارگذاری نماید، در وردپرس با نام Template Hierarchy شناخته می شود.

ساختار درختی و سلسه مراتبی Template Hierarchy برای وردپرس مشخص می کند که کدام template files در وردپرس بسته به نوع درخواست، باید برای ساخت صفحه مورد استفاده قرار بگیرد. با کمک این ساختار درختی، وردپرس می تواند تصمیم بگیرد که چه template file در قالب وردپرس موجود باشد و چه نباشد، صفحه درخواست شده را به کاربر نهایی ارسال کند.

پس از تشخیص وردپرس بر اساس Template Hierarchy و اینکه که چه template file ای باید مورد استفاده قرار بگیرد، template file مورد نظر را که شامل کدهای مورد نظر است، در اختیار وب سرور قرار داده و وب سرور نیز، این کدهای PHP در قالب را parse کرده و آن ها را تبدیل به کد HTML می نماید و آن ها را به سمت مرورگر کاربر می فرستد.

ساختار template files در وردپرس

ضروری ترین و مهم ترین Template file در قالب وردپرس که بدون آن قالب وردپرس اجرا نمی شود، فایل index.php می باشد. به این جهت این فایل حیاتی ترین فایل قالب وردپرس است چون در صورتی که در ساختار سلسه مراتبی قالب وردپرس یا همان template hierarchy، فایل template مناسب با درخواست کاربر، موجود نباشد و توسط هسته وردپرس یافت نشود، آنگاه محتویات این فایل برای نمایش به کاربر، مورد استفاده قرار خواهد گرفت.

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

Template Partials چیست؟

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

بهترین مثال برای درک Template Partial هدر یک سایت می باشد. بخش هدر، در بسیاری از Template file ها مورد استفاده قرار گرفته و بسیاری از صفحات با کمک آن ساخته می شوند. بنابراین فایل هدر سایت، یک Template Partials برای قالب شما می باشد.

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

  • فایل header.php که برای ساختن هدر سایت مورد استفاده قرار می گیرد

  • فایل footer.php که برای ساخت فوتر در سایت مورد استفاده قرار می گیرد

  • فایل sidebar.php که برای ساخت سایدبار در سایت مورد استفاده قرار می گیرد

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

Template Files های عمومی در وردپرس

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

  • فایل index.php : اصلی ترین فایل قالب وردپرس می باشد. وجود این فایل برای اجرای قالب ضروری (یا required) می باشد.

  • فایل style.css : فایل اصلی استایل دهی به قالب  وردپرس می باشد. وجود این فایل نیز برای اجرای قالب ضروری می باشد. این فایل شامل اطلاعات مربوط به قالب شما یا  همان information header نیز می باشد که بدون این اطلاعات، قالب شما در بخش پوسته ها به نمایش درنخواهد آمد.

  • فایل rtl.css : اگر در نصب وردپرس خود، از زبان های راست به چپ استفاده کنید، هسته وردپرس از این فایل به صورت خودکار برای نمایش استایل های سایت شما استفاده خواهد کرد. این یکی از بهترین قابلیت های سوئیچ کردن، بین استایل های قالب سایت چند زبانه (هم شامل زبان های left-to-right و هم right-to-left ) می باشد.

  • فایل comment.php : قالب ساخت، برای نظرات سایت شما می باشد.

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

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

  • فایل header.php : شامل بخش هدر سایت شما می باشد. بطور معمول این فایل شامل document type قالب شما، اطلاعات meta موجود در هدر سایت، لینک های فایل های اسکریپ و استایل های قالب شما و سایر اطلاعات مورد نیاز در بخش هدر سایت می باشد.

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

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

  • فایل single-{post-type}.php : وقتی کاربر درخواست نمایش یک پست سفارشی یا همان custom post type را از وردپرس می کند، از این فایل برای نمایش استفاده می شود. مثلا اگر یک نوع پست در وردپرس با نام کتاب یا همان book داشته باشید، هنگام که کاربر بخواهد یک صفحه از اطلاعات مربوط به یک کتاب را مشاهده کند، وردپرس برای ساخت صفحه و فرستادن آن به سمت کاربر، از فایل single-book.php استفاده می کند. در نظر داشته باشید، که اگر این فایل وجود نداشته باشد، وردپرس برای ساخت صفحه از index.php استفاده خواهد کرد.

  • فایل archive-{post-type}.php : زمانی که کاربر بخواهد همه یا بخشی از پست های مربوط به نوعی پست سفارشی مثل کتاب ها (که در بالا مثال زدیم) را مشاهده کند. از این فایل برای نمایش استفاده می شود. به عنوان مثال اگر کاربر بخواهد آرشیو مربوط به کتاب ها (یا همان لیست بایگانی شده کتاب ها) را مشاهده کند، هسته وردپرس از فایل archive-books.php برای نمایش به کاربر، استفاده خواهد کرد. اگر این فایل در پوسته موجود نباشد، هسته وردپرس از فایل archive.php به جای آن استفاده خواهد کرد.

  • فایل ۴۰۴.php : در صورتی که وردپرس پست یا صفحه یا سایر محتواهای دیگر که با درخواست کاربر تطابق داشته باشد را پیدا نکند، در جواب از این فایل برای پاسخ به کاربر استفاده می کند. نمایش این صفحه به کاربر نشان می دهد که اطلاعات درخواستی توسط او در سایت موجود نمی باشد.

  • فایل page.php : در صورتی که کاربر درخواست یک صفحه یا همان page را بکند، از این فایل بصورت پیش فرض استفاده می گردد.

  • فایل page-{slug}.php : در صورتی که کاربر درخواست صفحه خاصی را دهد، در صورت وجود این فایل در پوسته، برای نمایش از این فایل استفاده خواهد شد. به عنوان مثال در صورتی که کاربر درخواست صفحه ای با slug یا همان نام about را دهد، در صورت وجود فایل  page-about.php ، از این فایل برای نمایش به کاربر، استفاده خواهد شد.

  • فایل category.php : در صورتی که کاربر درخواست نمایش دسته خاصی از پست ها را داشته باشد، از این فایل برای نمایش آن ها استفاده می شود.

  • فایل tag.php : در صورتی که کاربر درخواست نمایش پست ها بر اساس برچسب خاصی را داشته باشد، از این فایل برای ساخت و نمایش آن به کاربر استفاده خواهد شد.

  • فایل taxonomy.php : در صورتی که کاربر درخواست نمایش دسته خاصی (منظور همان term است) داشته باشد (که در یک طبقه بندی سفارشی یا همان custom taxonomy موجود است)، در این حالت هسته وردپرس از این فایل برای نمایش استفاده خواهد کرد.

  • فایل author.php : اگر کاربر درخواست بارگذاری صفحه مربوط به یکی از نویسندگان سایت و پست های منتشر شده آن را داشته باشد، از این فایل برای نمایش استفاده می شود.

  • فایل date.php : در صورتی که کاربر بخواهد پست ها را بر اساس زمان یا تاریخ مشاهده کند، از این فایل برای نمایش استفاده می شود. این فایل می تواند صفحاتی با آدرس های شبیه به زیر (بسته به درخواست کاربر) تولید نماید:
    http://example.com/blog/2014
    http://example.com/blog/2014/05
    http://example.com/blog/2014/05/26

  • فایل archive.php : در صورتی که کاربر درخواست دیدن آرشیو یا بایگانی پست های منتشر شده در سایت (بر اساس دسته بندی، نویسنده و تاریخ) را داشته باشد، از این فایل استفاده می گردد. در نظر داشته باشد، در صورت وجود فایل های خاص تر در بین فایل های قالب برای این منظور، همچون فایل های category.php و author.php و date.php ، این فایل توسط این فایل ها override خواهد شد (یعنی این فایل ها به جای archive.php برای نمایش مورد استفاده قرار خواهند گرفت)

  • فایل search.php : برای نمایش نتایج جستجو توسط کاربر در سایت، از این فایل بهره برده می شود.

  • فایل attachment.php : در صورتی که کاربر بخواهد یک عکس تکی یا یک فایل تک مثل یک فایل pdf و یا یک ویدئو یا صدا را به صورت تنها، مشاهده نماید، از این template برای نمایش استفاده می گردد.

  • فایل image.php : این فایل، یک ورژن خاص تر از فایل attachment.php برای نمایش عکس ها به صورت تکی می باشد. اگر این فایل در قالب موجود نباشد، وردپرس از attachment.php برای نمایش عکس تکی استفاده خواهد کرد.

استفاده از Template Files در وردپرس

در داخل فایل های قالب ورپرس، شما می توانید برای نمایش اطلاعات خود به صورت داینامیک از Template Tags ها استفاده کنید یا هر کدام از template file هایی که نیاز داشتید را به فایل خود اضافه یا include نمایید و یا حتی template file های سفارشی بسازید و آن ها را در فایل های خود واکشی نمایید.

بهترین مثال برای نحوه استفاده از template files در وردپرس، فایل index.php می باشد که برای ساخت نهایی آن از انواع template file ها مثل header.php و sidebar.php و footer.php و search.php و سایر template file های سفارشی در آن استفاده می شود:

  • برای اضافه کردن یا include نمودن بخش هدر از تابع داخلی وردپرس با نام get_header استفاده می کنیم

  • برای اضافه کردن یا include نمودن بخش سایدبار از تابع داخلی وردپرس با نام get_sidebar استفاده می کنیم

  • برای اضافه کردن یا include نمودن بخش فوتر از تابع داخلی وردپرس با نام get_footer استفاده می کنیم

  • برای اضافه کردن یا include نمودن باکس جستجو از تابع داخلی وردپرس با نام get_search_form استفاده می کنیم

  • برای اضافه کردن یا include نمودن یک template file خاص (یا سفارشی که توسط خودمان ساخته شده) از تابع داخلی وردپرس با نام get_template_part به همراه نام آن استفاده می کنیم

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

<?php get_sidebar(); ?>
<?php get_template_part( 'featured-content' ); ?>
<?php get_footer(); ?>

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