utför frågor i WordPress med WP_Query

inlagd i WordPress av Samantha Rodriguez

Senast uppdaterad den 24 februari, 2020

databasen som matar din WordPress-webbplats är full av värdefull information. Det här gör det möjligt att filtrera dina inlägg och sidor efter många olika variabler. Om det du vill visa inte är en del av ditt tema finns det dock andra sätt att använda den informationen.

det är här WP_Query kommer in. Detta är en PHP-klass som använder sig av en mängd olika parametrar. Följaktligen kan du hämta data från WordPress-databasen för användning eller visning på din webbplats.

i den här artikeln ger vi en djupare förståelse för WP_Query-klassen och hur den kan användas. Vi kommer också att gå igenom några viktiga steg att följa när du använder den. Om du är redo, låt oss dyka rätt in!

Vad är WP_Query?

som vi nämnde är WP_Query en PHP-klass som används av WordPress-databasen. Den här klassen kan göra flera saker, men i första hand används den för att dra inlägg från databasen.

som namnet antyder gör det en fråga baserat på de kriterier du ställer in för den. Eftersom det finns många parametrar du kan använda med WP_Query i WordPress kan du dra och visa inlägg på ett antal unika sätt. Vi kommer att undersöka dessa alternativ mer detaljerat senare i det här inlägget.

hur man använder WP_Query

även om du bara lär dig de olika aspekterna av WordPress-kodbasen är WP_Query en bra klass att komma igång med. Nu, låt oss bryta ner fyra olika sätt du kan använda den på din webbplats.

Kom igång med en anpassad slinga

ett av de bästa sätten att lära känna WP_Query-samtalet är via WordPress-slingan. Om du inte är bekant med vad slingan är, är det ett viktigt koncept att läsa på.

slingan är det som anropar databasen som ber om postinnehåll och visar de data som returneras. Det fungerar också baserat på inställda parametrar, till exempel hur många inlägg du vill att din webbplats ska visas på en enda sida (något du kan konfigurera i dina inställningar > Läsmeny).

själva grunderna i slingan ser ut så här:

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>

detta enkla uttalande säger i huvudsak att om det finns inlägg ska de visas. Naturligtvis kan du lägga till en mängd olika malltaggar till denna grund för att skapa den skärm du vill ha.

du kan också infoga WP_Query i slingan. Detta gör att du kan placera parametrar på vilka inlägg som ska returneras. Låt oss bryta ner hur det skulle se ut:

<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

du ser samma if / while-uttalanden från basic Loop, men det finns en extra WP_Query-sträng. Oavsett vilka parametrar som ställs in här kommer att avgöra vilka inlägg som ska visas.

om du till exempel vill utesluta en viss författare från en lista med inlägg kan du göra det i slingan med WP_Query:

$query = new WP_Query( array( 'author' => -12 ) );

genom att placera detta i slingan skulle dina visade inlägg inte längre inkludera användaren med författarnumret ”12”.

antalet parametrar du kan använda med den här metoden är nästan oändliga. Du kan inkludera kategoriinformation samt avancerade taxonomier, bara för att ge två exempel.

argument: Ryggraden i anpassade frågor i WordPress

i föregående exempel kanske du har märkt ”($args)” som en del av strängen. Detta är en viktig del av frågan som hänvisar till de medföljande argumenten. Det berättar databasen exakt vad som ska ingå i den returnerade data.

i huvudsak kan dessa argument ställas in för att bestämma de exakta resultaten du vill visa. Argument kan också användas för att ändra värdet på variabler. Om du till exempel vill ändra hur listan med kategorier visas på sidan kan du använda ett argument.

ditt argument definierar en rad variabler och värden. Så om du vill kan du använda ett argument för att definiera en array och berätta för din Databas att presentera kategorierna i fallande ordning. Dessutom kan du använda samma metod för att utesluta alla kategorier som inte innehåller inlägg.

parametrar i WP_Query: kategori, tagg och mer

fram till denna punkt har vi bara nämnt parametrar i förbigående. Låt oss nu titta närmare på vad de faktiskt kan göra. Deras primära funktion är att göra det möjligt för dig att dra skräddarsydda samlingar av inlägg.

ett exempel på en parameter som kan användas i sidhuvudet på din webbplats är kategoriparametern. Du kan använda detta för att ange specifika kategorier för visning. Detta görs genom att ange relevant kategorinummer eller slug.

Dessutom kan du göra samma sak med taggparametern. Naturligtvis är kategori-och Taggparametrarna egentligen bara toppen av isberget när det gäller att använda WP_Query.

ändra objekt med metoder och egenskaper

även om det inte rekommenderas att direkt ändra egenskaperna hos en klass som WP_Query, kan du interagera med dem med hjälp av metoder. I huvudsak är metoder som funktioner, medan egenskaper motsvarar variabler.

WP_Query har många egenskaper. Dessa sträcker sig från enkla ”$posts” – egenskaper till mer komplicerade. Oavsett vilken metod som används för att interagera med dem kommer data att returneras baserat på de parametrar du väljer att införa.

WP_Query vs. query_posts () i WordPress

det är värt att notera att det finns ett annat sätt att ändra huvudfrågan på din sida. Detta är funktionen query_posts (). Även om detta kan fungera på samma sätt som WP_Query, kan det också vara mycket problematiskt.

WordPress-Kodreferensen rekommenderar till och med starkt att du inte använder den här funktionen i webbplatsens Huvudslinga. Det är också bäst att undvika det i plugins och teman. Detta beror på att det helt kommer att åsidosätta din huvudfråga.

WP_Query-klassen är att föredra, eftersom du också kan ’återställa’ huvudslingan efter att du har kört en fråga. Eftersom WP_Query låter dig köra flera frågor i en slinga, vill du förstå hur du implementerar wp_reset_postdata-funktionen också.

om du har inbäddat en sekundär slinga i Huvud WordPress-slingan kommer återställningsfunktionen att placeras i slutet och se ut så här:

<?php wp_reset_postdata(); ?>

detta återställer standardmalltaggarna och du kommer tillbaka till hur saker och ting var innan din sekundära slinga initierades.

anpassa din WordPress-webbplats med WP Engine

att kunna göra justeringar av hur objekt visas på din webbplats är bara en av fördelarna med att använda WordPress. Att förstå WP_Query och utnyttja verktygen som finns på utvecklarresurssidan kan hjälpa dig att bygga riktigt anpassade webbplatser.

Lämna ett svar

Din e-postadress kommer inte publiceras.