År 2012 WordPress 3.4 en funktion som utvecklare kunde använda för att kontrollera om en besökare använde en mobil enhet. Funktionen, kallad wp_is_mobile(), byggdes under en tid då de flesta mobiltelefoner var underdimensionerade och skärmstorlekarna fortfarande var små jämfört med dagens standarder.
Men nu när mobilanvändningen har överträffat surfning på datorer och smartphones konkurrerar med bärbara datorer i kraft, väcker det en berättigad fråga – är wp_is_mobile() fortfarande användbart eller har det blivit föråldrat?
Låt oss utforska vad den här funktionen gör, när den ska användas, var den brister och om den fortfarande bör vara en del av din WordPress-utvecklingsverktygslåda .
Vad är wp_is_mobile() och vad gör det?
Funktionen wp_is_mobile() är en inbyggd WordPress-funktion som returnerar sant om en webbplatsbesökare använder en mobil enhet. Den kontrollerar användaragentsträngen som skickas av besökarens webbläsare för att avgöra om begäran kommer från en smartphone eller surfplatta.
Den här funktionen skiljer inte mellan telefoner och surfplattor, och analyserar inte heller skärmstorlek eller orientering. Istället förlitar den sig på förekomsten av nyckelord i användaragenten för att fatta sitt beslut. Om webbläsarsträngen innehåller indikatorer för en mobil enhet returnerar funktionen sant; annars returnerar den falskt.
Behöver du experthjälp med att optimera WordPress för mobila enheter?
Vårt team bygger anpassade WordPress-lösningar som anpassar sig sömlöst till användarnas enheter, förbättrar prestanda och skalar i takt med dina affärsmål.
Varför introducerades det?
När WordPress introducerade funktionen hade responsiv webbdesign precis börjat ta fart. Utvecklare byggde ofta separata mobilversioner av webbplatser och arbetade hårt för att minska dataanvändningen för mobilanvändare. Bandbreddsbegränsningar och svagare enhetsprestanda gjorde optimering till en högsta prioritet.
Idén var enkel – att låta utvecklare villkorligt visa eller dölja innehåll baserat på om besökaren var på en mobil enhet eller inte.
Hur fungerar wp_is_mobile()?
Här är ett grundläggande exempel på hur man använder den här funktionen i en PHP-mallfil:
<?php if ( wp_is_mobile() ) { ?><p>Detta innehåll är för mobila enheter.</p><?php } else { ?><p> Detta innehåll är för datoranvändare.</p><?php } ?>
Det här kodavsnittet matar ut olika HTML-innehåll baserat på besökarens enhet. Det är användbart om du vill ladda en lättviktig layout för mobilanvändare eller visa alternativa instruktioner.
wp_is_mobile() kontra responsiv design
Den största begränsningen med wp_is_mobile() är att den fungerar på serversidan, långt innan någon CSS eller JavaScript är inblandad. Den kan inte detektera skärmbredd eller upplösning. Istället förlitar den sig helt på att detektera strängar i användaragenten.
Å andra sidan CSS-mediafrågor och moderna responsiva tekniker reagera på faktiska skärmdimensioner och orientering. De anpassar innehållslayouten baserat på hur mycket utrymme som finns tillgängligt, oavsett typ av enhet.
Om ditt mål är layoutflexibilitet är wp_is_mobile() inte det ideala verktyget. Men om du behöver leverera alternativt innehåll innan sidan laddas – särskilt baserat på enhetstyp – fyller den här funktionen fortfarande ett syfte.
När ska man använda wp_is_mobile()
Trots sin ålder finns det fortfarande flera användningsfall där wp_is_mobile() kan vara användbart:
- Laddar mindre bildfiler för mobila enheter
- Visa mobilspecifika instruktioner eller hjälpinnehåll
- Omdirigera mobilanvändare till appnedladdningssidor
- Visa alternativa rubriker eller menyer för mobilbesökare
- Skapa kortkoder som växlar innehålls synlighet baserat på enhetstyp
Det är särskilt användbart när det paras ihop med anpassade funktioner eller kortkoder som ger innehållsredigerare mer kontroll i WordPress blockredigerare.
Skapa kortkoder med wp_is_mobile()
För att ge redaktörer ett enkelt sätt att visa innehåll endast för mobila enheter eller datorer i inlägg eller på sidor kan du använda den här koden i din functions.php-fil:
add_shortcode('desktop', 'show_desktop_content'); function show_desktop_content($atts, $content = null){ if ( !wp_is_mobile() ) return do_shortcode( $content ); } add_shortcode('mobil', 'show_mobile_content'); function show_mobile_content($atts, $content = null){ if (wp_is_mobile() ) return do_shortcode( $content ); } Behöver du en specifik funktion? Lägg till den här funktionen och behåll den i följande fält: } Behöver du en specifik funktion?
Nu kan du använda [mobile]tryck[/mobile] och [desktop]klicka[/desktop] för att anpassa språket baserat på enhetens interaktion.
wp_is_mobile() och WordPress-cachning
En av de största utmaningarna med att använda wp_is_mobile() är cachning. Eftersom funktionen körs på servern kan det orsaka problem om cachning inte är korrekt konfigurerad.
Om en cachad version av en sida skapas för en mobilanvändare kan alla framtida besökare – inklusive datoranvändare – se mobilversionen om inte din cachningslösning separerar innehåll efter enhetstyp.
Det är därför vissa hanterade WordPress-värdar erbjuder separata alternativ för mobil cachning, så att innehållet visas korrekt för varje typ av besökare.
Begränsningar för wp_is_mobile()
Även om wp_is_mobile() är användbart i specifika sammanhang, har det vissa begränsningar:
- Kan inte identifiera skärmstorlek eller orientering
- Behandlar surfplattor och telefoner på samma sätt
- Kan felidentifiera enheter om användaragentsträngar förfalskas
- Tar inte hänsyn till moderna enheter med upplösningar i skrivbordsklass
Utvecklare som arbetar med avancerade responsiva layouter kan föredra att förlita sig på CSS-mediafrågor eller JavaScript-baserad enhetsidentifiering för mer precision.
Alternativ till wp_is_mobile()
Här är några moderna alternativ och förbättringar:
- CSS-media för layoutjusteringar
- JavaScript-bibliotek som Modernizr för funktionsidentifiering
- Responsiv bildmarkering med hjälp av picture-elementet
- Villkorliga block eller plugins som hanterar blocksynlighet baserat på skärmstorlek
För innehållsflexibilitet i blockredigeraren använder många plugins för blocksynlighet som erbjuder enhetsbaserade visningsregler utan att behöva röra PHP-kod.
Slutliga tankar
Funktionen wp_is_mobile() är långt ifrån värdelös. Den erbjuder ett enkelt sätt att upptäcka mobila besökare och leverera alternativt innehåll eller upplevelser på serversidan. Även om den inte erbjuder samma finess som responsiva designverktyg , spelar den fortfarande en roll i situationer där tidig enhetsidentifiering är användbar.
Den används dock bäst i kombination med andra metoder. Att enbart förlita sig på den här funktionen kanske inte ger den mest exakta eller användarvänliga upplevelsen, särskilt med dagens varierande utbud av enheter.