
بروزرسانی: 31 خرداد 1404
تابع wp_is_mobile() وردپرس: آیا هنوز مفید است؟
در بهار 2012 نسخه 3.4 وردپرس منتشر شد. نسخه 3.4 علاوه بر معرفی سفارشی ساز تم و قابلیت جاسازی خودکار توییت ها، عملکردی را نیز اضافه کرد که توسعه دهندگان می توانند از آن برای آزمایش اینکه آیا بازدیدکننده وب سایت از دستگاه تلفن همراهی مانند تلفن هوشمند یا رایانه لوحی وصل می شود استفاده کنند.
آن تابع - wp_is_mobile()
- در زمانی ظاهر شد که "نمایشگر رتینا" مشهوری که اپل برای آیفون 4 خود رونمایی کرده بود، دارای وضوح ناچیز 640 در 960 پیکسل بود. زمانی که آیفون 5 چند ماه پس از وردپرس 3.4 وارد شد، صفحه نمایش گوشی به 640 در 1136 پیکسل رسید - هنوز فاصله زیادی با نمایشگرهای تلفن های هوشمند و تبلت های مدرن که خطوط بین صفحه نمایش موبایل و دسکتاپ را از بین می برد.
بنابراین، است wp_is_mobile()
آیا امروز کاربرد دارد؟
هدف تابع ()wp_is_mobile
در سال 2012، پشتیبانی مرورگر از پرس و جوهای رسانه ای CSS که طراحی وب واکنش گرا را امکان پذیر می کرد، هنوز نسبتاً جدید بود. (واقعا برای کاربران مرورگر اینترنت اکسپلورر مایکروسافت جدید است!) اما فعال کردن طرح بندی های صفحه ای که با ابعاد مختلف درگاه نمایش سازگار می شوند، هدف نبود. wp_is_mobile()
.
این عملکرد هیچ تمایزی بین تلفن ها و تبلت ها ایجاد نمی کند و کاملاً از پیکسل های موجود در مرورگر بازدیدکننده بی اطلاع است. در عوض، wp_is_mobile()
به عنوان ابزاری در نظر گرفته شد که به توسعه دهندگان این امکان را می دهد که پهنای باند را هنگام پاسخگویی به دستگاه های تلفن همراهی که اغلب ضعیف بودند و احتمالاً در دست کاربرانی هستند که به ارائه دهندگان مخابراتی خود برای انتقال داده پول پرداخت می کردند، بهینه کنند.
از آنجایی که امروزه تلفن ها و تبلت ها از بسیاری از رایانه های رومیزی موجود در سال 2012 قدرتمندتر هستند، پهنای باند محدودتر ممکن است اهمیت کمتری داشته باشد، اما هنوز موارد استفاده برای عملکردی وجود دارد که به سادگی دنیا را به دو بخش تقسیم می کند: دستگاه های تلفن همراه و هر چیز دیگری.
تابع wp_is_mobile() در عمل
وردپرس wp_is_mobile()
تابع برمی گردد true
زمانی که در نتیجه درخواست مرورگرها در اکثر گوشی های هوشمند و تبلت ها (از جمله Kindle) اجرا می شود. بنابراین، مثال کلاسیک تابعی که جریان های محتوای مختلف را در PHP تولید می کند به شکل زیر است:
This content is for mobile devices
This content is for desktops (and laptops).
اگر واقعاً نیاز دارید که خروجی وب سایت خود را برای دستگاه های تلفن همراه بهینه کنید (احتمالاً برای به حداقل رساندن نیازهای پهنای باند)، تکنیک بالا را می توان در فایل های موضوعی برای خروجی ساختارهای کاملاً متفاوت برای صفحات موبایل و دسکتاپ استفاده کرد.
تشخیص دستگاه برای تنظیمات محتوای ریز
پرسش های رسانه ای CSS و سایر تکنیک های پشتیبانی کننده از طراحی وب واکنش گرا می توانند به طرح بندی صفحه کمک کنند تا با طیف گسترده ای از اندازه ها و جهت گیری های صفحه نمایش سازگار شوند. اما آنها نمی توانند به شما کمک کنند ارتباط برقرار کنند با بازدیدکنندگان سایت شما به عنوان کاربران موبایل یا دسکتاپ.
به عنوان مثال، می دانید که کاربران دسکتاپ احتمالاً از ماوس برای «کلیک کردن» روی عناصر سایت شما استفاده می کنند، در حالی که کاربران تلفن همراه «ضربه می زنند». کاربران دسکتاپ ممکن است روی یک پیوند "راست کلیک" کنند تا پیوند را در پنجره مرورگر جدید باز کنند. در همین حال، کاربران تلفن همراه ممکن است برای شروع همان کار را فشار داده و نگه دارید. فقط برقراری ارتباط با کاربران در مورد نحوه پیمایش وب سایت خود (مانند اسناد راهنمای شما) می تواند به این معنی باشد که نیمی از اوقات از اصطلاحات اشتباه استفاده می کنید.
در اینجا این است که چگونه می توانیم ترکیب کنیم wp_is_mobile()
و کدهای کوتاه وردپرس برای پشتیبانی از خروجی گرانول محتوای موبایل یا دسکتاپ به روشی که برای ویرایشگرهای وب سایت نیز آسان باشد.
ما از تشخیص موبایل/دسکتاپ خود در ارتباط با وردپرس استفاده خواهیم کرد add_shortcode()
و do_shortocde()
توابع ایجاد ابزارهای کد کوتاه که ویرایشگرها می توانند در پست ها اعمال کنند.
ابتدا این کد را به تم خود اضافه می کنیم functions.php
فایل (پس از محافظت از آن با ایجاد یک تم فرزند):
/** * Add shortcodes */// Create (desktop) shortcodeadd_shortcode(\'desktop\', \'show_desktop_content\');function show_desktop_content($atts, $content = null){ if( !wp_is_mobile() ){ return do_shortcode( $content ); } else { return null; }}// Create (mobile) shortcodeadd_shortcode(\'mobile\', \'show_mobile_content\');function show_mobile_content($atts, $content = null){ if( wp_is_mobile() ){ return do_shortcode( $content ); } else { return null; }}
این کد کوتاه (دسکتاپ) و (موبایل) (و برچسب های بسته شدن آنها) را ایجاد می کند که می توانیم در هر پست یا محتوای صفحه مانند این استفاده کنیم:
Password Help
To change your password, (desktop)click(/desktop)(mobile)tap(/mobile) the cog icon.
در یک دستگاه تلفن همراه، محتوای بالا به شکل زیر ظاهر می شود:

در تمام دستگاه های دیگر، بازدیدکنندگان این را خواهند دید:

این تکنیک ارائه محتوایی را که از نحوه تعامل بازدیدکنندگان با سایت وردپرس شما آگاه است، نسبتاً آسان می کند.
تابع wp_is_mobile() و کش وردپرس
نیازی نیست که از سال 2012 از وردپرس استفاده کرده باشید تا بدانید که کش کردن صفحه یکی از موثرترین راه ها برای بهبود عملکرد است. اما ذخیره سازی اولیه وردپرس می تواند یک آچار میمون را در تلاش برای ارائه محتوای متفاوت در درخواست های یک صفحه بیاندازد.
کش وردپرس از یک صفحه جداگانه با درخواست مشتری آغاز می شود. اگر اولین درخواست از یک دستگاه تلفن همراه باشد، محتوای ذخیره شده در حافظه پنهان برای کاربران تلفن همراه در صورت اصلاح توسط wp_is_mobile()
. و هر درخواست بعدی برای آن صفحه، محتوای موبایل را - حتی به کاربران دسکتاپ - تا زمانی که حافظه پنهان پاک شود، ارائه می کند.
به همین دلیل است که پلتفرم میزبانی مدیریت شده وردپرس Kinsta از کش های جداگانه برای محتوای موبایل و دسکتاپ پشتیبانی می کند - از حافظه پنهان محلی سرور وب NGINX شما شروع می شود و تا کش Edge Kinsta در بیش از 260 Cloudflare PoP در سراسر جهان گسترش می یابد.
فعال کردن کش کردن صفحات برای دستگاه های تلفن همراه تنها با چند کلیک (یا ضربه زدن!) در داشبورد MyKinsta انجام می شود:

خلاصه
عملکرد وردپرس wp_is_mobile()
ممکن است انفجاری از گذشته به نظر برسد، اما ممکن است کاربردهایی برای تشخیص «موبایل یا دسکتاپ» آن پیدا کنید که می تواند به شما کمک کند تجربه بهتری برای همه بازدیدکنندگان وب سایت خود ایجاد کنید.
فراموش نکنید که اگر می خواهید بهترین عملکرد را از این مسیرهای موبایل و دسکتاپ داشته باشید، برای محتوای متفاوتی که تولید می کنید، به حافظه پنهان جداگانه نیاز دارید.
آیا ایده خوبی برای استفاده از آن دارید؟ wp_is_mobile()
? در کامنت زیر به ما اطلاع دهید.