Template Tag ها در وردپرس – مقدمه

Template Tag ها یا همان تگ قالب وردپرس، یکی از پرکاربردترین مفاهیمی است که شما در قالب های وردپرس با آن سر و کار خواهید داشت. شما به وسیله آن ها قالب خود را به خوبی داینامیک کرده و در همه جای قالب به تکرار از آن ها استفاده می کنید.

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

template tag چیست ؟

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

این محتوا می تواند هر چیزی اعم از عنوان یک بلاگ تا محتویات داخل سایدبار سایت شما باشد. Template Tag ها ترجیح داده ترین روش برای آوردن اطلاعات به داخل قالب شما می باشند زیرا:

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

Template Tag چیست؟

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

  • تگ کدهای PHP یا همان PHP code tag
  • توابع وردپرس
  • پارامترهای دلخواه یا همان Optional Parameters

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

برای مثال، Template Tag با نام get_header به وردپرس فرمان می دهد تا فایل header.php را انتخاب کرده و آن را به فایل قالب جاری include نماید. به همین صورت get_footer نیز به وردپرس می گوید تا فایل footer.php را به فایل های مورد استفاده قالب فعال در وردپرس، include کند.

مثال های زیر نوع های دیگری از template tag ها و کاربرد آن ها در وردپرس می باشند:

  • the_title : به وردپرس می گوید که عنوان مربوط به یک صفحه یا نوشته را از دیتابیس بازیابی کرده و آن را در داخل کدهای قالب، قرار دهد.
  • bloginfo : به وردپرس می گوید تا عنوان سایت شما را از دیتابیس گرفته و آن را داخل template file مورد نظر، درج نماید.

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

۱- در مورد بخش خاصی از اطلاعات درخواست دهید

۲- اطلاعات درخواستی را با روش مورد نیاز، فرمت دهی یا قالب بندی کنید

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

چرا باید از Template Tags استفاده کنید؟

می توان اذعان داشت که Template Tag ها با قرار دادن همه کدها برای یک بخش به خصوص از محتوا، کار درج بخش های مختلف یک قالب و template file های آن را، بسیار آسان می کنند و این باعث می گردد تا نگهداری و توسعه قالب بسیار ساده تر گردد.

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

بنابراین مثلا استفاده از Template Tag ای با نام get_header ، این کار را برای شما به راحتی انجام خواهد داد. شما به جای کپی کردن کدهای هدر خود، همه را در فایل header.php قرار می دهید و سپس تنها با استفاده از get_header ، کدهای هدر خود را به هر فایل دلخواه قالب خود، اضافه می کند.

این کار نه تنها باعث کاهش حجم کدهای سمت سرور شما خواهد شد، بلکه باعث می شود تا نگهداری و توسعه کدها نیز بسیار راحت تر باشد، این یعنی اگر بخواهید تغییری در کدهای هدر سایت خود به وجود آورید، دیگر نیاز نخواهد بود تا آن را در همه فایل های قالب خود تغییر دهید و کافی است تا کدها را فقط در فایل header.php تغییر دهید. این به این معنی است که با تغییر در این فایل، به صورت خودکار این تغییر برای تمام template file هایی که از این فایل header.php استفاده می کنند، اعمال خواهد شد.

دلیل دیگری که شما باید از Template Tags استفاده کنید، نمایش دادن داده های داینامیک بر روی سایت شما می باشد. فرض کنید شما در فایل هدر خود، به صورت دستی کد زیر را برای تگ title وارد کنید:

<title>My Personal Website<title>

این به این معنی خواهد بود که شما هرگاه بخواهید متن عنوان سایت خود را عوض کنید، مجبور خواهید بود تا به داخل کدها رجوع کرده و آن را به صورت دستی از بین کد ها یافته و تغییر دهید. اما در عوض و به جای آن، راه ساده تر آن است که عنوان خود سایت خود با bloginfo در داخل کدهای خود فراخوانی کنید، بنابراین هیچگاه دیگر نیاز نخواهید داشت تا به داخل کدها رجوع کرده و آن را به صورت Hard code مورد ویرایش قرار دهید.

برای اینکار در پنل سایت بخش را برای ورود اطلاعات مربوط به عنوان در نظر می گیرد و آن را در درون دیتابیس سایت خود ذخیره می کنید. حال هرگاه به عنوان سایت نیاز داشتید با استفاده از template tag پایین یعنی bloginfo آن را در داخل کدهای قالب خود فراخوانی می کنید:

<title><?php  bloginfo( 'name' ) ?><title>

چگونه باید از Template Tag ها استفاده کنید؟

استفاده از Template Tag ها، فوق العاده ساده است. شما می توانید در هر template file ای که می خواهید، تنها با استفاده از نوشتن یک خط کد php از Template Tag استفاده کرده و آن ها فراخوانی کنید. به عنوان مثال برای فراخوانی و include  کردن محتویات فایل header.php به هر بخش از template file ای که میخواهید، فقط کافی است تکه کد زیر را در بین کدهای خود قرار دهید:

get_header();

پارامترهای Template tag

بسیاری از template tag ها به شما اجازه می دهند که پارامترهایی را به آن ها پاس بدهید. پارامترها، اجزا خارجی از اطلاعات هستند که معلوم می کنند که چه اطلاعاتی از دیتابیس شما بازیابی گردند.

به عنوان مثال  bloginfo به شما اجازه می دهد تا پارامتری را در آن قرار دهید تا برای وردپرس معین کنید که کدام بخش خاص از اطلاعات بلاگ را به عنوان خروجی، برای شما ارسال کند. به عنوان مثال برای گرفتن نام بلاگ توسط این template tag ، شما می باید پارامتر name را به عنوان ورودی به bloginfo ارسال کنید یا می توانید برای نوشتن یا دریافت ورژن وردپرس نیز، پارامتر version را به bloginfo پاس بدهید:

//Retrieve your blog title
bloginfo( 'name' );

//Retrieve your wordpress version
bloginfo( 'version' );

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

استفاده از template tag ها در داخل حلقه یا The Loop وردپرس

بسیاری از template tag های وردپرس فقط در داخل حلقه وردپرس کار می کنند. این به این معنی می باشد که آن ها در بخش هایی از template file می توانند درج شوند که در آن ها یک loop وجود دارد. وجود آن ها در داخل حلقه ها باعث ساخت صفحه هایی می شوند که کاربران می توانند به واسطه دستورات موجود در این template tag ها، آن ها را مشاهده کنند.

یک حلقه در وردپرس یا همان WordPress Loop به صورت زیر شروع می شود:

if ( have_posts() ) : 
    while ( have_posts() ) : 
        the_post();

در نظر داشته باشید، Template Tag هایی که در داخل حلقه کار می کنند، فقط باید در بین ناحیه ای که loop در آن اجرا می شود و پیش از ناحیه ای که حلقه بسته می شود (مطابق کد زیر)، قرار داشته باشند:

    endwhile; 
else :
    _e( 'Sorry, no posts matched your criteria.', 'devhub' );
endif;

مثال هایی زیر، بعضی از template tags ها هستند که می باید در داخل یک حلقه در وردپرس قرار بگیرند تا اجرا شوند:

دلیل اصلی اینکه باید آن ها فقط داخل یک حلقه اجرا شوند، این می باشد که آن برای اجرا نیاز به ست شدن شی پست به صورت سراسری یا همان global post object دارند.

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

در واقع این توابع، برای اجرا شدن نیازی به global post object ندارند.

راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:

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