
🔧 WordPress: hur du visar en widget med en shortcode var som helst på din webbplats
Du behöver ett prenumerationsformulär inte i sidofältet utan mitt i ett inlägg. Eller en WooCommerce-katalogwidget på en sida som inte har något sidofält alls. Du går till adminpanelen, letar efter ett block, och WordPress säger: widgetar finns bara i registrerade temaytor. Punkt slut.
Begränsningen är arkitektonisk: widgetsystemet är knutet till sidebar-1, footer-widgets och andra zoner som definieras i temat. Innehåll i inlägg är främmande mark för det. Du kan kringgå detta, men det finns inget standardalternativ för "infoga widget här" i kärnan.
En shortcode för widgetar löser problemet med en enda rad. Inget behov av att skapa en separat yta, inget barntema, ingen mallredigering. Nedan beskrivs hur det fungerar 2026: ett färdigt plugin, alla parametrar och ett inbyggt PHP-alternativ för utvecklare.
💡 Snabb översikt:
- Installera WP Anywhere Widgets, pluginet genererar en shortcode för valfri registrerad widget.
- Infoga shortcoden i ett inlägg, en sida, ett sidofält eller en PHP-mall för temat.
- Konfigurera titel, HTML-omslutningselement och CSS-klasser via shortcode-parametrar.
- För projekt utan tredjepartsplugins, använd den inbyggda funktionen
the_widget().
Varför du behöver en shortcode för widgetar
WordPress låter dig inte visa en widget inuti innehållet i ett inlägg med standardverktyg. Widgetsystemet fungerar bara inom registrerade temaytor, och allt utanför dessa gränser existerar inte för det.
I praktiken uppstår behovet i tre scenarier:
Prenumerationsformulär i en lång guide. Sidofältet har rullat upp ur bild, läsaren ser inte formuläret. En shortcode håller CTA:n kvar direkt i inläggets brödtext, framför ögonen på dem.
WooCommerce-widget på en anpassad sida. Sidan är byggd utan sidofält, men produktfilter eller sökning (
[woocommerce_product_search]) måste finnas precis där.Dynamiskt "Relaterade inlägg"-block i mallen single.php. Temat tillhandahöll ingen yta före kommentarer. En shortcode anropad från
functions.phpplacerar widgeten var som helst utan att röra mallar.
Tidigare skötte Widget Shortcode-pluginet denna uppgift: ett enkelt verktyg som genererade [widget id="text-1"] för valfri registrerad widget. I januari 2023 stängdes det på grund av en olöst sårbarhet. Den direkta efterföljaren är WP Anywhere Widgets.
WP Anywhere Widgets: shortcode-generator för alla widgetar
WP Anywhere Widgets anammade samma idé men gick längre. Det tillhandahåller inte bara shortcodes för befintliga widgetar utan låter dig också skapa dina egna direkt i adminpanelen, utan att knyta dem till ett sidofält. Det stöder både den klassiska widgetredigeraren och Gutenberg-block.

Installationen är standard: Plugins → Lägg till nytt → sök "WP Anywhere Widgets" → Installera → Aktivera. Efter aktivering visas ett Widget Shortcodes-objekt i menyn Utseende: en sammanfattande tabell över alla skapade widgetar och deras shortcodes. En "Kopiera"-knapp bredvid var och en.
Pluginet fungerar med WordPress 3.3 och senare, testat upp till version 6.8.5. I juni 2026 fanns 700+ aktiva installationer och betyget 4,8 av 5 på WordPress.org. Den senaste uppdateringen (v4.0) lade till fullt stöd för Gutenberg-block och en separat adminsida för hantering av shortcodes.
🔗 WP Anywhere Widgets på WordPress.org
Hur man genererar en widget-shortcode
Varje widget som är registrerad i systemet får ett unikt ID: text-1, calendar-3 eller block-7. WP Anywhere Widgets visar detta ID i gränssnittet och tillhandahåller omedelbart en färdig shortcode:

Grundläggande syntax:
1 [widget id="text-1"]
Infoga den i valfritt inlägg, sida eller textblock. Pluginet kommer att ersätta den med widgetens fullständiga HTML: titel, innehåll, omslutningselement med temats CSS-klasser. Ingen ytterligare konfiguration krävs.
Infoga en shortcode i ett inlägg och i Gutenberg-redigeraren
I den klassiska redigeraren infogas shortcoden direkt i texten, precis som [gallery] eller [contact-form-7]:

I blockredigeraren använder du Shortcode-blocket. Lägg till blocket, klistra in [widget id="text-1"], så renderar WordPress widgeten i den visuella redigeraren:

Om widgeten innehåller JavaScript (till exempel en karta eller ett formulär) kommer det inte att köras i redigeraren. Detta är en säkerhetsbegränsning i Gutenberg. På frontend fungerar allt som vanligt.
Shortcode-parametrar: titel, omslutningselement och CSS-klasser
Shortcoden accepterar flera valfria parametrar som ändrar HTML-utdatan utan en enda rad kod:

title, åsidosättande av titel. Som standard visar widgeten titeln som anges i dess inställningar. Parametern title ersätter den i farten:
1 [widget id="text-1" title="New title"]
För att helt dölja titeln, skicka med title="0". Widgeten renderas utan en <h2> eller <h3> ovanför innehållet.
container_tag, HTML-tagg för omslutningselement. Som standard omsluts widgeten av en <div>. Ersätt den med <section>, <aside> eller någon annan semantisk tagg:
1 [widget id="text-1" container_tag="aside"]
container_class, ytterligare CSS-klass. Din klass läggs till standardklassen widget. Användbart för anpassad stil på en specifik instans:
1 [widget id="text-1" container_class="my-custom-widget"]
container_id, HTML id-attribut. Som standard genererar WordPress ID:t automatiskt. Denna parameter fastställer värdet för ankarlänkar och JavaScript-målsökning:
1 [widget id="text-1" container_id="subscribe-widget"]
title_tag** och title_class, titelkontroll.** Ändra titelns tagg från <h2> (standard) till <h3>, <h4>, och lägg till en anpassad klass:
1 [widget id="text-1" title_tag="h3" title_class="widget-title-large"]
Alla parametrar kan kombineras i en shortcode. Ordningen spelar ingen roll, syntaxen är standard: param="value".
PHP-metod: funktionen the_widget() för utvecklare
När du inte behöver ett plugin tillhandahåller WordPress den inbyggda funktionen the_widget(). Den matar ut valfri registrerad widget direkt från PHP: i ett tema, barntema eller ett Code Snippets-utdrag.
Grundläggande anrop:
1 the_widget( 'WP_Widget_Text', array( 2 'title' => 'Subscription form', 3 'text' => '[mailpoet_form id="1"]', 4 'filter' => true, 5 ) );
Det första argumentet är widgetens PHP-klass. Det andra är en array med inställningar som matchar vad widgeten sparar i wp_options. Det tredje är en array med argument för omslutningselementet:
1 the_widget( 'WP_Widget_Text', 2 array( 'title' => 'Subscribe', 'text' => '[shortcode]' ), 3 array( 4 'before_widget' => '<section class="widget %2$s">', 5 'after_widget' => '</section>', 6 'before_title' => '<h3 class="widget-title">', 7 'after_title' => '</h3>', 8 ) 9 );
Detta tillvägagångssätt är inte beroende av tredjepartsplugins och kommer inte att gå sönder vid WordPress-uppdateringar. Nackdelen: du måste känna till varje widgets PHP-klass. Standardklasser i kärnan:
WP_Widget_TextWP_Widget_CalendarWP_Widget_SearchWP_Widget_Categories
Hitta ett plugins klass i dess källkod eller via var_dump( $wp_widget_factory->widgets ).
Koden placeras i det aktiva temats functions.php (helst ett barntema) eller via Code Snippets-pluginet. Innan du redigerar functions.php, säkerhetskopiera filen: ett PHP-syntaxfel kommer att ta ner hela webbplatsen.
⁉️🤔 Vanliga frågor
Fungerar widget-shortcoden med caching-plugins?
Ja, shortcoden bearbetas av servern under sidrenderingen, innan HTML-koden hamnar i cachen. WP Rocket, W3 Total Cache och LiteSpeed Cache sparar den redan sammansatta sidan med den färdiga widgeten. För dynamisk data (WooCommerce-varukorg, valutakurser), använd ESI-block för att exkludera ett specifikt fragment från cachen. Funktionen
the_widget()i kombination medDOING_AJAXger dig full kontroll över vad som cachas och inte.
Måste widgeten vara i ett aktivt sidofält?
Nej, widgeten behöver inte vara i ett aktivt sidofält. Den behöver bara vara registrerad i WordPress och tillagd i valfritt sidofält, inklusive ett inaktivt (Inaktiva widgetar). WP Anywhere Widgets skapar widgetar i sitt eget interna register, som inte alls är knutet till temaytor.
Hur många widgetar kan du visa via shortcode på en enda sida?
Det finns inga kvantitetsbegränsningar. Varje anrop av
[widget]ellerthe_widget()skapar en oberoende instans. Prestandan beror bara på widgetarnas egen komplexitet: tio textblock eller prenumerationsformulär kommer att köras omedelbart, medan tio widgetar med externa API-anrop kommer att lägga till 200-300 ms vardera. För API-tunga widgetar, cacha resultat via transient inutithe_widget().
Vad händer om widget-pluginet tas bort men dess shortcode finns kvar i inlägg?
En shortcode utan en aktiv hanterare matas ut som vanlig text: besökare kommer att se
[widget id="text-1"]direkt på sidan. Innan du tar bort källpluginet, kontrollera alla inlägg via adminsökning: Verktyg → Better Search Replace, eller WP-CLI:wp search-replace '[widget id="text-1"]' '' --dry-run. Efter massersättning, rensa upp tomma stycken i databasen separat.
Kan du använda en widget-shortcode i en navigeringsmeny?
WordPress-menyer bearbetar inte shortcodes som standard. För att infoga en widget i navigeringen, använd filtret
wp_nav_menu_itemsifunctions.phpmed ettdo_shortcode('[widget id="..."]')-anrop: detta lägger till shortcoden före, efter eller mellan specifika menyalternativ. Alternativ: en anpassad Walker-klass som tolkar en{widget}-platshållare i menyalternativets namn och ersätter den med en aktiv widget.
Vad man ska välja: plugin eller anpassad kod
I de flesta fall hanterar WP Anywhere Widgets uppgiften fullständigt. Installera det, kopiera shortcoden, klistra in den där det behövs. Parametrarna räcker för anpassning av omslutningselementet utan en enda rad CSS.
PHP-metoden via the_widget() är motiverad i två situationer: du är en utvecklare som siktar på noll tredjepartsplugins i projektet, eller så behöver du speciell logik (till exempel olika widgetar för inloggade användare jämfört med gäster). Använd annars pluginet och överkomplicera inte saker.
Om ditt mål specifikt är att bädda in ett prenumerationsformulär mitt i ett inlägg, överväg e-postplugins med inbyggt shortcode-stöd: MailPoet, Newsletter, Brevo. Var och en tillhandahåller en färdig [form]-shortcode med positionskontroll, medan WP Anywhere Widgets fungerar som ett universellt lager för allt annat.
En visuell demonstration från WebTutorials-kanalen: hela cykeln från plugin-installation till en fungerande shortcode på en sida, snabbt och rakt på sak.



