یک وب سایت وردپرس می تواند انواع مختلفی از صفحات مانند صفحه درباره، صفحه تماس، صفحه سیاست حفظ حریم خصوصی، صفحه نویسنده یا صفحه اصلی داشته باشد.
گاهی اوقات، زمانی که ما در حال توسعه یک تم، یک افزونه یا اجرای برخی عملکردهای دیگر در وردپرس هستیم، تعیین اینکه آیا صفحه فعلی صفحه اصلی است یا خیر، مهم می شود. در این آموزش دقیقاً یاد خواهیم گرفت که چگونه این کار را انجام دهیم.
صفحه اصلی و صفحه اول وردپرس چیست؟
صفحه اصلی نوع خاصی از صفحه در وردپرس است. به صفحهای در وبسایت اشاره میکند که شامل فهرستی از تمام پستهای وبلاگی است که شما به ترتیب زمانی منتشر کردهاید.
این را نباید با مفهوم صفحه اول ثابت که در وردپرس 2.1 معرفی شد، اشتباه گرفت. محتوای یک صفحه اول ثابت لزوماً ثابت نیست. با این حال، به این معنا نیست که فهرستی از تمام پست های وبلاگ مانند صفحه اصلی را شامل شود.
گزینه های مناسب برای تنظیم یک صفحه ثابت به عنوان صفحه اول را می توان با مراجعه به سایت پیدا کرد تنظیمات > خواندن از پیمایش در داشبورد مدیریت وردپرس.
اصطلاحات صفحه اصلی و صفحه اول ممکن است کمی گیج کننده باشد. به طور کلی، ما به URL اصلی یک وب سایت به عنوان صفحه اصلی آن اشاره می کنیم. برای مثال، صفحه اصلی Tuts+ خواهد بود https://tutsplus.com/. با این حال، این صفحه اول در وردپرس در نظر گرفته می شود.
صفحه اصلی و صفحه اول یک وب سایت وردپرسی بسته به تنظیمات می توانند یکسان یا متفاوت از یکدیگر باشند.
با استفاده از is_home()
و is_front_page()
توابع در وردپرس
می توانید استفاده کنید is_home()
عملکردی در وردپرس برای تعیین اینکه آیا صفحه فعلی صفحه اصلی وبلاگ است یا صفحه ای که همه پست های وبلاگ را لیست می کند. تمام پست های وبلاگ وب سایت شما را به ترتیب زمانی نمایش می دهد.
با استفاده از اسکرین شات در بخش قبل به عنوان مرجع، is_home()
تابع درست برای URL باز خواهد گشت website.com/blog/. این صفحه نخست گزینه در تنظیمات به صفحه اصلی وبلاگ اشاره دارد و نه URL اصلی وب سایت.
باید از is_front_page()
عملکردی برای تعیین اینکه آیا شما در حال حاضر در صفحه اول هستید یا آدرس اصلی وب سایت مانند website.com. در مثال ما، محتوای صفحه اول یا URL اصلی وب سایت مانند صفحه فروشگاه خواهد بود.
با در نظر گرفتن نکات زیر می توانید از هرگونه سردرگمی در مورد این دو عملکرد جلوگیری کنید:
کارکرد is_front_page()
همیشه باز خواهد گشت true
هنگامی که در URL اصلی وب سایت مانند website.com هستید. فرقی نمی کند که از URL اصلی برای نمایش برخی از محتوای ثابت یا لیستی از پست های وبلاگ استفاده کنید. کارکرد is_front_page()
بر خواهد گشت false
در تمام صفحات دیگر
کارکرد is_home()
همیشه باز خواهد گشت true
وقتی در صفحه ای هستید که فهرست پست های وبلاگ را نمایش می دهد. فرقی نمی کند که صفحه اول وب سایت باشد یا صفحه دیگری. صدا زدن is_home()
هر جای دیگری همیشه باز خواهد گشت false
.
استفاده كردن is_home()
و is_front_page()
با یکدیگر
ممکن است نیاز به استفاده داشته باشید is_home()
و is_front_page()
با هم برای انجام وظایف خاصی بسته به تنظیمات شما.
اجازه دهید بگوییم که شما تنظیمات خواندن در داشبورد وردپرس را طوری انتخاب کرده اید که صفحه اصلی آخرین پست های وبلاگ را همانطور که در تصویر بالا نشان داده شده است نمایش دهد. در این مورد، ارزش is_home()
و is_front_page()
خواهد بود true
برای آدرس اصلی وب سایت مانند website.com.
<?php // When checking the main website URL with the homepage set to display Latest Posts. if(is_home()) { // Executes } if(is_front_page()) { // Executes } if(is_home() && is_front_page()) { // Executes } if(is_home() || is_front_page()) { // Executes } ?>
همانطور که می بینید، با استفاده از is_front_page()
تفاوتی با استفاده ندارد is_home()
در این موقعیت. هر دوی آنها برمی گردند true
برای URL اصلی و false
برای همه URL های دیگر
اکنون، فرض کنید یک صفحه ثابت با عنوان “محصولات” را با URL تنظیم کرده اید website.com/products/ به عنوان صفحه اول وب سایت و یک صفحه وبلاگ با URL website.com/blog/ به عنوان صفحه اصلی وبلاگ یا صفحه فهرست وبلاگ.
<?php // When checking the main website URL with the homepage set to be a static page if(is_home()) { // Doesn't execute } if(is_front_page()) { // Executes } if(is_home() && is_front_page()) { // Doesn't Execute } if(is_home() || is_front_page()) { // Executes } ?>
لیست پست های وبلاگ در صفحه نمایش داده می شود website.com/blog/. در این حالت فقط کد داخل اولین و آخرین if
بلوک ها اجرا خواهند شد.
<?php // When checking the URL website.com/blog/ with blog set to be the posts page. if(is_home()) { // Executes } if(is_front_page()) { // Doesn't execute } if(is_home() && is_front_page()) { // Doesn't Execute } if(is_home() || is_front_page()) { // Executes } ?>
هیچ کدام از اینها if
بلوک ها برای سایر صفحات وب سایت اجرا می شوند.
فرض کنید صفحه سفارشی خود را به عنوان صفحه اصلی وبلاگ یا صفحه ای که آخرین پست ها در آن ظاهر می شوند تنظیم کرده اید. اگر تصمیم بگیرید عنوان صفحه فعلی را قبل از لیست پست ها نمایش دهید، اما فقط در صورتی که در URL اصلی وب سایت نباشید، چه؟ در این صورت می توانید از بلوک شرطی زیر استفاده کنید:
<?php if(is_home() && !is_front_page()) { echo '<h1>'.single_post_title().'</h1>'; } ?>
بررسی برنامهای تنظیمات کاربر
همچنین این امکان برای ما وجود دارد که در مورد اولویت کاربر مربوط به تنظیم یک صفحه اصلی یا صفحه اول خاص بررسی کنیم. ما می توانیم استفاده کنیم get_option()
تابع برای انجام این بررسی است.
سه گزینه وجود دارد که می توانیم مقادیر آنها را بررسی کنیم. اینها هستند: show_on_front
، page_on_front
، و page_for_posts
.
مقداری که با تماس به get_option('show_on_front')
یا می شود posts
یا page
.
وقتی این فراخوانی تابع برمی گردد posts
، نشان می دهد که صفحه اول برای نمایش لیست آخرین پست های وبلاگ تنظیم شده است. به عبارت دیگر، به این معنی است که فراخوانی به is_home()
و is_front_page()
هر دو برمی گردند true
.
هنگامی که تماس به get_option('show_on_front')
برمی گرداند page
، به این معنی است که یک صفحه ثابت به عنوان صفحه اول وب سایت اختصاص داده شده است. یک تماس به get_option('page_on_front')
اکنون شناسه آن صفحه استاتیک را به شما می دهد. شما همچنین می توانید تماس بگیرید get_option('page_for_posts')
به منظور دریافت شناسه صفحه ایستا که قرار است برای نمایش آخرین پست های وبلاگ استفاده شود.
در اینجا خروجی این سه تماس از وب سایت من است. پس از دریافت شناسه صفحات استاتیک، می توانید به اطلاعات بیشتری در مورد آنها دسترسی داشته باشید.
<?php // page echo get_option('show_on_front') // 342 echo get_option('page_on_front') // 134 echo get_option('page_for_posts') ?>
افکار نهایی
در این آموزش با دو تابع مهم در وردپرس به نام آشنا شدیم is_home()
و is_front_page()
که می توانیم از آن برای بررسی اینکه آیا در حال حاضر در صفحه پست های وبلاگ یا صفحه اول وب سایت هستیم استفاده کنیم. ما تمایز بین این دو نوع صفحه و اینکه چگونه انجام بررسی با هر دو این توابع می تواند به ما در اجرای کد خاصی در موقعیت های بسیار خاص کمک کند، یاد گرفتیم.
در پایان همچنین یاد گرفتیم که چگونه تعیین کنیم کدام صفحه در وب سایت به عنوان صفحه اول یا صفحه پست های وبلاگ تنظیم شده است.
پست کوچک ایجاد شده توسط OpenAI DALL-E.