Inom det senaste året har mycket skrivits om förbättringarna i WordPress användargränssnitt: den mest omtalade förändringen har varit den förbättrade skrivarupplevelsen.
Men om du är en utvecklare vill du veta mindre om det och mer om vad som ändrats under huven. Här visar jag en av de mest intressanta ändringarna för utvecklare: förbättringar av vissa typer av frågor.
De viktigaste förändringarna är följande:
Låt oss ta en titt på ändringarna.
I tidigare versioner av WordPress kan du använda en OCH
eller ELLER
uttalande för att definiera frågor om taxonomi villkor, datum och metadata. Så till exempel, kommer följande argument att användas i en fråga på en recept webbplats som matar ut snabba frukost recept:
'post', 'tax_query' => array ('relation' => 'OCH', array ('taxonomy' => 'hastighet', 'field' => 'slug', 'terms' => )), array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('frukost')))); $ query = nytt WP_Query ($ args); ?>
Det här letar efter 'fart'
och 'måltid'
taxonomier och utsändningar med 'snabbt'
och 'frukost'
termer.
Men vad händer om du vill skriva en mer komplex fråga? Låt oss säga att du ville ha snabba recept för frukost och långsamma recept för lunch (kanske för den som vill få frukost, gjort snabbt så att de har mer tid att laga lunch!). Du vill inte använda en enkel OCH
uttalande om att ansluta till alla element i din fråga, sedan dess skulle du få långsamma recept till frukost och lunch, till exempel. Och du vill inte använda en ELLER
uttalande som länkar alla villkor, eftersom du får alla slags recept som bara har en av de frågade villkoren tillsammans med andra som du vill filtrera ut.
Den goda nyheten är att du nu kan göra detta. För att fråga snabba recept till frukost och långsamma recept till lunch, använder du följande:
array ('relation' => 'ELLER', array ('relation' => 'OCH', array ('taxonomy' => 'måltid', 'fält' => 'slug', 'terms' => array frukost ")), array ('taxonomy' => 'hastighet', 'fält' => 'slug', 'terms' => array ('quick'))), array ('relation' => 'OCH' array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array slug ',' terms '=> array (' slow '))))))); $ query = nytt WP_Query ($ args); ?>
Här har jag använt två nestade arrays:
ELLER
, eftersom vi letar efter inlägg som är antingen snabba frukost recept eller långsamma lunch recept.OCH
eftersom du vill att posten ska ha båda termerna.OCH
.Självklart kan du variera dina frågor till att inkludera flera taxonomi villkor och värden, och bli så komplexa som du behöver.
Exemplet jag har givit ovan använder taxonomy termer, men den här funktionen har också lagts till datum och metadatafrågor. Metadata är potentiellt där saker kan bli intressanta, eftersom du har utrymme för så många värden.
Syntaxen fungerar på exakt samma sätt för datum och metadatafrågor. För meta frågor du ersätter tax_query
med meta_query
och använda 'nyckel'
och 'värde'
som parametrarna. För datumfrågor du ersätter tax_query
med date_query
och använd de datumparametrar som finns i WordPress Codex.
För att fråga kommentarer, använder du WP_Comment_Query
klass i stället för de mer vanliga WP_Query
klass. Den här klassen har fått åtta nya parametrar till den:
'Author__in'
: Identifiera kommentarförfattare (eller en uppsättning författare)'Author__not_in'
: Identifiera kommentarer inte av en viss författare (eller en uppsättning av författare)'Post_author__in'
: identifiera författare (eller uppsättning av författare) av posten som kommentaren gjordes på'Post_author__not_in'
: utesluta kommentarer som gjorts på inlägg som skrivits av en viss författare eller en uppsättning författare'Comment__in'
: kommentarer med ett visst ID eller en rad ID-nummer'Comment__not_in'
: uteslut kommentarer med ett visst ID eller en rad ID-nummer'Post__in'
: kommentarer gjorda på ett inlägg eller en rad inlägg (med post-ID)'Post__not_in'
: uteslut kommentarer som görs på ett inlägg eller en rad inlägg (med post-ID)De värden som används för dessa är författar-ID, kommentar-ID eller post-ID som passande.
Observera att WP_Comment_Query
klassen stöder nu också kapslade frågor.
Det har också varit ett par buggfixar som du kan hitta till hjälp:
date_query
användes tillsammans med a tax_query
eller meta_query
har fixats.'orderby' => 'meta_value'
användes när man passerade en 'Meta_query'
med ELLER
relation i WP_Query
, Detta brukade bryta frågan. Detta har åtgärdats.Om du vill ha lowdown på alla detaljer, kan du hitta den på den stora WordPress-kärnan.
Dessa förbättringar på frågor tar WordPress ett steg längre till full CMS-kapacitet. Möjligheten att använda kapslade sökningar innebär att du kan skriva ut innehåll på mycket mer flexibla och komplexa sätt. Det blir intressant att se hur folk använder dem!