Du vet när du behöver visa vissa WordPress-inlägg baserat på anpassade fält? Vi har varit där.
När vi först började med WordPress kändes det skrämmande att se kodavsnitt, särskilt när allt vi ville var att visa inlägg med specifik information.
Men här är de goda nyheterna: efter att ha hjälpt tusentals WordPress-nybörjare har vi upptäckt att även något som låter tekniskt, som filtrering av anpassade fält, inte behöver vara skrämmande.
Faktum är att vi kommer att guida dig genom en enkel kodmetod för att göra det.
Den här lösningen fungerar perfekt oavsett om du publicerar vanliga blogginlägg eller anpassade inläggstyper baserat på specifika kriterier.

📌 Snabb notering: Den här handledningen handlar om att visa WordPress-inlägg om de har ett värde angivet i ett specifikt anpassat fält.
Om du vill visa anpassade fält på startsidan av ett WordPress-inlägg, kan du läsa vår guide om hur man visar anpassade fält i WordPress-teman.
Varför visa WordPress-inlägg med ett specifikt anpassat fält?
När du skapar ett inlägg på din WordPress-webbplats kan du använda anpassade fält för att lägga till ytterligare metadata till inlägget.
Metadata är extra information du kan lägga till ett inlägg. Till exempel, om du skrev en bokrecension, kunde du lägga till anpassade fält för 'Författarens namn' eller 'Betyg i stjärnor'.
Anpassade fält är ett avancerat WordPress-koncept, och det finns många sätt att lägga till anpassade fält i WordPress. Du hittar många hjälpsamma tips om hur du använder och visar anpassade fält i vårt inlägg, WordPress Custom Fields 101: Tips, Tricks, and Hacks.

En av våra användare frågade oss hur man visar WordPress-inlägg endast om ett specifikt anpassat fält fanns. Detta kan vara användbart om du letar efter att skapa en anpassad sida som listar alla inlägg som innehåller ett specifikt anpassat fält och/eller värde.
Efter att ha svarat med svaret tänkte vi att det vore bäst att dela det med alla andra så att den större WordPress.org-gemenskapen också kan dra nytta av det.
Redigera dina WordPress-temafiler: Vad du bör tänka på
För att kunna följa den här handledningen ordentligt, här är några saker du bör tänka på:
- Den här handledningen innebär att redigera dina WordPress-temafiler med kod, så den är inte den mest lämpliga för helt nybörjare. Om du är ny på detta, måste du läsa vår guide om hur man kopierar och klistrar in kod i WordPress.
- Vi rekommenderar att säkerhetskopiera din webbplats och/eller använda en staging-miljö så att din live-webbplats inte påverkas när ett fel uppstår. Detta beror på att du kommer att lägga till kod i dina temafiler, vilket kan vara riskabelt.
- Vi rekommenderar att du förstår hur WordPress mallhierarki fungerar så att du vet var du ska lägga koden senare.
- Du måste också bekanta dig med hur WordPress-loopar fungerar eftersom vi kommer att använda dessa parametrar i en WordPress-fråga.
Notera också att den här handledningen endast fungerar med klassiska WordPress-teman, eftersom blockteman har en annan uppsättning temafiler.
Med det sagt, låt oss titta på hur man visar ett WordPress-inlägg endast om det har ett specifikt anpassat fält.
Hur du filtrerar dina inlägg baserat på specifika anpassade fält
Innan vi visar dig koden du behöver använda, måste du veta vilken temafil du behöver lägga till den i. Troligtvis blir det en sidmall, som index.php, archive.php eller page.php.
Låt oss säga att du vill lägga till det i index.php-filen för Twenty Twenty-One-temat. Här är hur WordPress-loopdelen av den filen ser ut just nu:
<?php
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
get_footer();
Den här koden använder standard WordPress-loopen (have_posts() och the_post()) för att visa inlägg. Den här metoden är lämplig för de flesta standard WordPress-teman och används för att visa inlägg utan någon anpassad filtrering eller sortering.
Låt oss nu säga att du använder det anpassade fältet 'color' som i exemplet ovan. Du måste ersätta hela den koden med kodavsnittet nedan:
<?php
// The Query to show a specific Custom Field
$the_query = new WP_Query('meta_key=color');
// Load posts loop.
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
// Reset Post Data
wp_reset_postdata();
get_footer();
I den här nya koden introducerade vi en anpassad fråga för att hämta inlägg som har ett specifikt anpassat fält (i det här fallet, alla inlägg med det anpassade fältet 'färg').
Sedan använder den en anpassad loop (if ($the_query->have_posts())) för att iterera över inläggen som hämtats av denna anpassade fråga och visa varje inläggs innehåll på samma sätt som det första kodavsnittet.
Vi lade också till funktionen wp_reset_postdata() för att säkerställa att WordPress återgår till att visa alla inlägg korrekt efter den anpassade frågan. Detta säkerställer att webbplatsen fungerar smidigt och visar rätt innehåll för användarna.
Vad händer om du vill hitta inlägg där det anpassade fältet 'färg' har ett specifikt värde, som 'blå'? För att göra det behöver du bara lägga till en 'meta_value'-parameter till din fråga.
Din uppdaterade frågekoden kommer att se ut så här:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
💡Proffstips: Du kan ta din filtrering ännu längre med parametern meta_compare. Detta låter dig hitta inlägg som inte matchar ett värde.
Till exempel, för att visa alla inlägg där färgen inte är 'blå', skulle din fråga se ut så här:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
!= talar om för WordPress att hitta alla inlägg där fältet 'color' finns men inte är lika med 'blue'.
Det finns många andra jämförelseoperatorer du kan använda, som du hittar i den officiella WordPress-utvecklardokumentationen.
När du har sparat koden i sidmallens PHP-fil kan du kontrollera din WordPress-webbplats på framsidan för att se din kod i aktion.
Vanliga frågor om att visa ett inlägg om det har ett specifikt anpassat fält
Här är några frågor som våra läsare ofta ställer om att visa ett inlägg om det bara har ett specifikt anpassat fält:
Finns det ett sätt att göra detta utan att redigera temafiler?
Ja, och det är den metod vi rekommenderar för de flesta användare. Ett plugin som WPCode låter dig säkert lägga till anpassade PHP-kodsnuttar som denna utan att direkt röra vid dina temafiler.
Detta skyddar din webbplats från fel och säkerställer att dina anpassningar inte går förlorade när du uppdaterar ditt tema.
Kan jag filtrera inlägg efter flera anpassade fält?
Det kan du. Funktionen WP_Query är mycket kraftfull och accepterar mer komplexa argument. Du skulle använda en 'meta_query'-parameter, som låter dig bygga en array av villkor för att matcha flera anpassade fält samtidigt.
Fungerar den här metoden med blockteman?
Den här specifika handledningen fokuserar på klassiska teman genom att redigera filer som index.php eller archive.php. Blockteman använder Site Editor och förlitar sig inte på dessa filer.
För att uppnå ett liknande resultat i ett blocktema skulle du använda Query Loop-blocket och dess inbyggda filtreringsalternativ, som inte kräver anpassad kod.
Vad är skillnaden mellan 'meta_key' och 'meta_value'?
Tänk på ‘meta_key’ som namnet på etiketten, som ‘Färg’ eller ‘Status’. ‘meta_value’ är den faktiska data som anges i det fältet, som ‘Blå’ eller ‘Publicerad’.
Att använda nyckeln hittar alla inlägg med det anpassade fältet, medan att använda värdet hittar alla inlägg med den specifika informationen.
Lär dig fler sätt att anpassa din WordPress-webbplats
Här är fler sätt du kan anpassa dina WordPress-sidor:
- Hur man stylar enskilda kategorier olika i WordPress
- Hur man lägger till en anpassad scrollbar i WordPress
- Hur man lägger till anpassade stilar till WordPress-widgets
- Hur man stylar varje WordPress-inlägg olika
- Hur man använder kortkoder i dina WordPress-teman
- Hur man markerar nya inlägg för återkommande besökare i WordPress
- Hur man ändrar sidofältets sida i WordPress
Vi hoppas att den här handledningen hjälpte dig att lära dig hur du visar ett WordPress-inlägg endast om det har ett specifikt anpassat fält. Du kanske också vill se vår kompletta guide om hur man redigerar en WordPress-webbplats och våra experttips om bästa Figma-plugins för WordPress.
Om du gillade den här artikeln, prenumerera då på vår YouTube-kanal för WordPress-videoguider. Du kan också hitta oss på Twitter och Facebook.

ahmed
Jag har en fråga, sir, om jag vill visa ett enskilt inlägg och anpassade fält, vad ska jag göra.
Jag vill inte visa inlägget med specifika anpassade fält. Jag vill visa alla anpassade fält för inlägget
Dave101
Hej, tack för den användbara handledningen. Jag har en fråga, på en wordpress-webbplats ställde jag in ett meta-värde som heter "meta_country" och sedan ställde jag in varje inlägg med landskoden för artikeln, som "us", "uk", "fr"... Nu försöker jag lägga till någonstans på bloggens startsida en länk som visar en lista över alla inlägg med ett specifikt land och en specifik tagg. Till exempel alla "UK"-inlägg taggade "APPLE".
Jag förstår inte hur jag ska göra det, kan någon hjälpa mig?
Максим Каминский
tack så mycket, det hjälpte väldigt bra!
pjhooker
Tack!
Eduard Unruh
omg äntligen TACK!
Mario M
Jag kunde inte generera några resultat om jag inte inkluderade parametern “post_type” i frågan.
t.ex. $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Underbart, bara så enkelt och rent.
Tack.
scottlee.me
@ad Bra fråga! Jag är också nyfiken.
ad
Hej,
Hur skulle jag kunna visa inlägg som INTE har ett specifikt anpassat fält? Någon idé?
Tack!!!
tara tin
så vitt jag vet från php måste det vara meta_key!=’your key’
;du behöver bara veta att “!” betyder “inte”
brunobruno2
Vackert! Tack så mycket för att du delade det. Fungerar som en charm.