تعداد بازدید: 108

فراخوانی قالب فایل در وردپرس

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

PATH : نمایش دهنده مسیر فایل در سیستم که به شکل زیر می باشد :

همون طور که در بالا می بینید مسیر یک فایل در هاست می باشد.هاست میشه همون سیستم عاملی که یه کاربر با نام username برای شما ساخته شده که حالا username یه نام تست هست که من میگم.

برای فراخوانی فایل هایی که میخواید include کنید می تونید از path استفاده کنید.

نکته : متغیر سراسیری TEMPLATEPATH مسیر پوسته جاری رو در فایل تم میده.

URL : این آدرس فایل ها بر اساس پروتکل و آدرس دامنه شماست :

می بینید که در بالا دامنه ما gnutec.ir هست که مسیر استایل اصلی رو به ما میده. برای فراخوانی استایل ها و اسکریپت ها در زمان enqueue کردنشون از URL میشه استفاده کرد.

نکته : تابع get_template_directory_uri مسیر پوسته جاری (پوسته ای که دارید توش از این تابع استفاده می کنید) رو میده.

تابع locate_template

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

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

پارامتر های ورودی این تابع :

  • template_names : آرایه ای از آدرس فایل ها . شروع جستجو توسط این تابع از آدرس TEMPLATEPATH شروع می گردد.
  • load : اگر برابر با true باشد فایل مربوطه لود می شود. Default: false
  • require_once : اگر برابر با true باشد فایل مربوطه به وسیله تابع require_once لود می شود. Default: true

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

مثال :

این تابع در ابتدا به دنبال آدرس TEMPLATEPATH/templates/loop.php می گردد. (منظور از قرار دادن TEMPLATEPATH در ابتدا آدرس ریشه پوسته است)اگر پیدا نکرد بعد به دنبال آدرس TEMPLATEPATH/template-parts/footer/info.php  می گرده و در صورتی که هر کدوم رو از ابتدا پیدا کرد آدرس رو برمی گردونه و در صورتی که هیچ کدوم رو پیدا نکرد هم رشته خالی برمی گردونه.

پس دقت داشته باشید تنهای یک آدرس برمی گردونه.

تابع get_template_part

این تابع بسیار پرکاربرد برای فراخوانی فایل ها در پوسته می باشد. مزیتی که نسبت به فراخوانی مستقیم دارد این است که Query Variables رو هم فراخوانی می کنه. این تابع در درون خودش از locate_template استفاده می کنه بنابراین شروع جستجو از ریشه پوسته (TEMPLATEPATH) خواهد بود.

نکته : همون طور که گفتیم شروع آدرس دهی در این تابع از ریشه خواهد بود . پس شما در هر جایی (هر دایرکتوری) که این تابع رو فراخوانی کنید شروع آدرس دهی رو ریشه تم بدونید.

پارامتر های ورودی این تابع :

  • slug : آدرس عمومی فایل به همراه نامک اون. اگر فایل site-info.php رو در نظر بگیرید site میشه نامک و info میشه نام.
  • name : نام فایل .

خروجی این تابع true یا false در صورت فراخوانی و نیافتن فایل خواهد بود.

مثال :

در تابع بالا فایل با آدرس TEMPLATEPATH/templates/single-meta.php را فراخوانی می کند.

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

برای ارسال پارامتر از تابع set_query_var و برای دریافت پارامتر از تابع get_query_var استفاده می کنیم.

مثال :

با ثبت متغیر header با مقدار fixed در فایل single-meta.php می تونیم این متغیر رو بگیریم و با توجه به مقدارش رفتار متفاوتی داشته باشیم. بدین ترتیب در تعداد فایل ها صرفه جویی می کنیم.

Template Overriding در پلاگین ها

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

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

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

مثالی از فراخوانی یک فایل در مثلا یک شورتکد :

  • مکان فراخوانی این تابع هم باید از جایی باشه که فرانت اند بالا اومده باشه(مثلا توی شورتکد).
  • از این تابع برای فراخوانی کتابخانه ها و توابع استفاده نکنید.
  • پارامتر های $args به صورت آرایه اگر باشند در فایل فراخوان extract می شوند.

 

مطالب مشابه

Settings API در ووکامرس

ما برای ساخت پنل تنظیمات برای افزونه ها از api خود وردپرس استفاده می کردیم. حال این که افزونه مکمل برای ووکامرس می...

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

Settings API در وردپرس

وردپرس برای ساخت پنل تنظیمات شبیه به پنل تنظیمات پیش فرض خودش API هایی رو قرار داده . Settings API , Options API دو...

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

Administration Menus در وردپرس

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

اشتراک گذاری :

ابوالفضل صباغ

برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای فراخوانی قالب فایل در وردپرس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *