
🔖 Så här aktiverar du taggar på WordPress-sidor
WordPress-sidor har inte stöd för taggar från början, och det är irriterande ända tills du förstår varför det är gjort så. En sida i WordPress är tekniskt sett en anpassad posttyp som taxonomin post_tag helt enkelt inte är kopplad till. Grundutvecklarna behöll taggar enbart för inlägg och behandlade sidor som statiskt innehåll.
Men i praktiken kan den här begränsningen kringgås på fem minuter. Två metoder: en kodrad i functions.php eller ett mikroplugin som du kan aktivera och inaktivera utan att redigera ditt tema. Nedan finns båda alternativen med en förklaring av vad som exakt händer under huven.
💡 Snabb översikt:
Registrera taxonomin
post_tagför posttypenpagemed hjälp av en enda funktionregister_taxonomy_for_object_typeLägg till taggstöd i arkiv via hooken
pre_get_postsså att sidor dyker upp i taggfrågeresultatKoden fungerar för alla anpassade posttyper; upprepa bara anropet med önskat typnamn
Allt paketeras till ett separat plugin på en minut: fil → plugin-header → kod → aktivering
Varför taggar på sidor
Taggar är inte bara ett sidospaltsmoln. De är en navigationsaxel som länkar samman spridda sidor i tematiska grupper snabbare än kategorier eller menyer.
WordPress-sidor förökar sig ofta: kontakter, policyer, villkor, tjänstelandningssidor, portföljer, dokumentation. Utan taggar bygger kopplingen mellan dem enbart på manuella länkar i texten. Med taggar hamnar en enskild "Frakt"-sida automatiskt i gruppen "logistik" bredvid sidan "Returer", och besökare klickar på taggen för att se allt relaterat.
För SEO ger taggar på sidor extra intern länkning och minskar avvisningsfrekvensen: användare lämnar inte efter första sidan utan dyker in i en tematisk samling. Dessutom kommer taggar med i webbplatskartan, vilket hjälper sökmotorer att bättre förstå strukturen.
Metod 1: kod i functions.php
Den mest direkta vägen är att lägga till ett kodstycke i filen functions.php i ditt aktiva tema. Öppna wp-content/themes/DITT_TEMA/functions.php och klistra in koden före den avslutande ?> eller allra sist i filen:
1 /** 2 * Add tag support to WordPress pages. 3 * Code — in functions.php of child theme or via Code Snippets plugin. 4 */ 5 function sdstudio_add_tags_to_pages() { 6 register_taxonomy_for_object_type( 'post_tag', 'page' ); 7 } 8 add_action( 'init', 'sdstudio_add_tags_to_pages' ); 9 10 /** 11 * Include pages in tag archive queries. 12 * Without this, pages won't appear on /tag/tag-name/ 13 */ 14 function sdstudio_pages_in_tag_archives( $wp_query ) { 15 if ( $wp_query->get( 'tag' ) ) { 16 $wp_query->set( 'post_type', 'any' ); 17 } 18 } 19 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_archives' );
Här är vad som händer. Funktionen register_taxonomy_for_object_type() länkar den befintliga taxonomin post_tag till posttypen page. Detta är en central WordPress-funktion; dokumentation på developer.wordpress.org. Den skapar inte en ny taxonomi utan lägger bara till relationen "sidor → taggar".
Hooken pre_get_posts modifierar SQL-frågan innan den körs. När WordPress bygger en taggarkivsida (/tag/name/) söker den som standard bara efter inlägg av typen post. Raden $wp_query->set( 'post_type', 'any' ) utökar urvalet till alla typer: sidor, inlägg, anpassade typer.
Efter att du infogat koden, gå till valfri sida så dyker ett "Taggar"-block upp i sidospalten precis som i vanliga inlägg. Det fungerar direkt; ingen cache-rensning behövs.
Anpassning för anpassade posttyper
Om du har anpassade posttyper (CPT) som portföljer, omdömen eller produkter som också behöver taggar, lägg till samma antal register_taxonomy_for_object_type()-anrop inuti din init-funktion:
1 register_taxonomy_for_object_type( 'post_tag', 'portfolio' ); 2 register_taxonomy_for_object_type( 'post_tag', 'testimonials' );
CPT-namnet är det andra argumentet, samma som angavs när typen registrerades via register_post_type(). Inga ytterligare redigeringar av pre_get_posts behövs: 'any' inkluderar redan alla registrerade typer.
Metod 2: ett separat plugin
Att redigera functions.php direkt är en fungerande lösning, men skör. Byt tema och koden försvinner, och tar bort taggar från sidor med den. För den som hanterar flera sajter eller ofta byter tema är det mer tillförlitligt att flytta kodstycket till ett separat plugin.
Skapa filen wp-content/plugins/sdstudio-tags-for-pages.php med detta innehåll:
1 <?php 2 /** 3 * Plugin Name: Tags for Pages 4 * Description: Enables post tags on WordPress pages and custom post types 5 * Version: 1.0 6 * Author: SDStudio 7 * License: GPL-2.0+ 8 */ 9 10 // Direct access — forbidden 11 if ( ! defined( 'ABSPATH' ) ) { 12 exit; 13 } 14 15 // Tags → pages 16 function sdstudio_tags_for_pages() { 17 register_taxonomy_for_object_type( 'post_tag', 'page' ); 18 } 19 add_action( 'init', 'sdstudio_tags_for_pages' ); 20 21 // Pages → tag archive 22 function sdstudio_pages_in_tag_queries( $wp_query ) { 23 if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->get( 'tag' ) ) { 24 $wp_query->set( 'post_type', 'any' ); 25 } 26 } 27 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_queries' );
Skillnaden mot den första metoden är kontrollen ! is_admin() && $wp_query->is_main_query(). Den säkerställer att admin-frågor inte påverkas: pre_get_posts körs överallt, inklusive sidlistan i adminpanelen, och utan denna kontroll kan du få oväntat admin-beteende vid filtrering.
Filen är klar; gå till Plugins, hitta "Tags for Pages" och aktivera det. Det är allt. När du byter tema förblir pluginet aktivt och taggar försvinner inte. På multisite kan pluginet aktiveras per sajt eller nätverksaktiveras för hela nätverket.
Metod 3: färdiga plugins från katalogen
Om du inte vill skriva kod hanterar färdiga lösningar från WordPress.org uppgiften. De lägger inte bara till taggar utan även kategorier för sidor, plus ett hanteringsgränssnitt.
Add Categories to Pages är ett lättviktigt plugin som aktiverar både kategorier och taggar för sidor med en enda kryssruta. Inga inställningar, ingen reklam. Passar när du bara vill att saker ska fungera utan extra skärmar.
Här är en videodemonstration av att lägga till taggar på sidor via kod och via plugin, 4 minuter, alla steg visas i realtid:
Viktig poäng: tredjepartsplugins medför extra kod och hookar. Om din sajt redan är lastad med ett dussin plugins är ett till ytterligare en felkälla. Koden från metod 1 och 2 väger bara några byte och lägger inte till databasfrågor utöver de vanliga.
⁉️🤔 Vanliga frågor
Fungerar detta på multisite? Ja, koden är universell. Du kan aktivera pluginet per sajt eller aktivera det nätverksbrett via "Nätverksaktivera".
På WordPress multisite fungerar koden identiskt på alla sajter i nätverket. Funktionen
register_taxonomy_for_object_type()är bunden till taxonominpost_tag, som existerar separat på varje sajt i nätverket, så taggar överlappar inte mellan sajter. För varje undersajt aktiveras taggar på sidor oberoende: aktivera pluginet på en sajt så dyker taggar bara upp där.
Behöver jag uppdatera permalänkar efter att jag infogat koden? Nej, URL-strukturen ändras inte. Taggar på sidor lägger inte till nya omskrivningsregler.
WordPress lagrar relationen "sida, tagg" i tabellen
wp_term_relationships, samma som används för inlägg. Inga omskrivningsregler påverkas: taggarkivet finns redan (/tag/name/), och pre_get_posts inkluderar helt enkelt sidor i sin fråga. Inget behov av att röra permalänkar; allt fungerar direkt efter att koden aktiverats.
Kommer taggar att försvinna när jag byter tema? Det beror på metoden. Kod i temats functions.php gör att de försvinner. Kod i ett plugin eller Code Snippets bevarar dem.
När du byter tema laddar WordPress en ny
functions.php, så kodstycket från det gamla temat slutar köras och taggmetaboxen på sidor försvinner. Relationerna "sida, tagg" i databasen raderas dock inte. Återställ bara koden (i det nya temat eller via plugin) så dyker alla tidigare tilldelade taggar upp igen i admin.
Kan jag tilldela taggar programmatiskt när jag importerar sidor? Ja, via wp_set_object_terms( $page_id, array( 'tag1', 'tag2' ), 'post_tag' ).
Funktionen
wp_set_object_terms()tar ett sid-ID, en array med taggnamn och taxonominamnet. Om en tagg med det namnet inte finns skapar WordPress den automatiskt. Detta är praktiskt vid migrering: ett skript loopar igenom alla sidor och tilldelar taggar från en CSV-fil eller ett gammalt CMS. Det är viktigt att köra skriptet efterinit, annars är taxonomin inte registrerad än.
Hur är det med taggmolnet: kommer sidor att dyka upp i det? Ja, standardwidgeten "Taggmoln" plockar upp taggar från sidor utan extra konfiguration.
Widgeten
wp_tag_cloud()samlar som standard in alla objekt av taxonominpost_tag, oavsett posttyp. Så fort en sida har minst en tagg kommer den med i molnet på lika villkor som inläggstaggar. Frekvensen beräknas också korrekt: en tagg på tre sidor och två inlägg ger en vikt på "5" och visas större.
Vad ska man välja: kod eller plugin
Det specifika valet beror på ditt scenario, inte på ett "rätt svar."
Ägare av enstaka sajter som inte byter tema på flera år klarar sig med ett kodstycke i functions.php: kopiera, klistra in, klart. Frilansare med ett dussin kundsajter tycker att ett plugin är smidigare: skicka zip-filen till kunden eller aktivera på ett nytt projekt på sekunder. De som redan använder Code Snippets eller WPCodeBox kan helt enkelt lägga till kodstycket i sin samling; det försvinner inte vid temauppdateringar och kräver inget separat plugin.
Om du behöver mer än taggar (kategorier, anpassade taxonomier, avancerad filtrering), titta på färdiga plugins från WordPress.org. Men för uppgiften "aktivera taggar på sidor" räcker sju rader kod. Allt annat är överdrift.
Sätt sedan upp din taggstruktur: tänk ut 5-7 nyckelämnen för sidor och tilldela dem. Om en månad visar taggmolnet vilka sajtämnen som är starkast sammankopplade.



