Haal het meeste uit postformaten tools voor inhoudsorganisatie

Querying By Post Format

Ik weet wat ik eerder zei, over postformaten die geen organisatorisch hulpmiddel zijn, maar zolang je je video's markeert als video's, afbeeldingen als afbeeldingen, enzovoort, kun je net zo goed die gebruiken om je site te organiseren. Het toevoegen van een overtollige taxonomie is niet logisch. Vooral omdat postformaten worden ingesteld met behulp van de taxonomie "post_format."
Dit betekent dat we een vergelijkbare query kunnen gebruiken als de query die we in de vorige stap gebruikten om te zoeken op taxonomie, dit keer met behulp van de taxonomie "post_format" voor query's op taxonomieën. Nogmaals zullen we de gebruiken tax_query argument voor WP_Query. Als u wilt zoeken naar alle berichten met het citaatformaat, maken we onze WP_Query zoals dit:
$ args = array ('post_type' => 'post', 'tax_query' => array (array ('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format -citaat', ) ) ); $ query = new WP_Query ($ args);

Merk op dat in het bovenstaande voorbeeld de term is voorafgegaan door "post-format-". Houd er ook rekening mee dat we een reeks termen kunnen doorgeven aan het argument termen in de tax_query om op meer dan één formaat te zoeken.

Een postopmaakmenu maken

Als u in een paar postformaten veel berichten op uw site heeft, wilt u waarschijnlijk elke indeling markeren. Als u bijvoorbeeld een visuele artiest bent die uw blog gebruikt om uw video's en afbeeldingen te laten zien en postformaten gebruikt, kunt u een menu maken met uw berichten van de formaatvideo en afbeelding afzonderlijk.

De eerste stap is het instellen van een array met argumenten voor WP_Query, net zoals degene die ik je hierboven heb laten zien, behalve deze keer zonder het specifieke postformaat gespecificeerd in het argument "terms" van de tax_query en een reeks indelingen, samen met labels die moeten worden gebruikt in de menu-uitvoer.

Hier is wat deze twee matrices eruit zien:

// initial WP_Query args $ args = array ('post_type' => 'post', 'posts_per_page' => 5, 'tax_query' => array (array ('taxonomy' => 'post_format', 'field' => ' slug ',))); // formaten om $ formats te tonen = array (array ('naam' => 'video', 'label' => 'Videos'), array ('name' => 'image', 'label' => 'Foto's' ),);

Met deze twee arrays kunnen we een maken foreach loop uit de tweede array, om te zoeken naar berichten met het huidige formaat en om een ​​lijst met berichten uit te voeren. Dit houdt in dat in elke iteratie van de lus de termen argument worden toegevoegd met behulp van set (), een instantie maken van WP_Query, doorlopen en vervolgens het argument termen uitschakelen.

Binnenkant van de WP_Query while-lus die we kunnen gebruiken get_term_link () om een ​​link te maken naar de archiefpagina van het postformaat, wat in werkelijkheid een taxonomie-termarchief is. Voor de afzonderlijke berichten kunnen we gebruiken get_permalink () om de link naar het bericht te maken. Hier is hoe de loop eruit ziet:

echo '';

Zorg ervoor dat u extra klassen of ID's toevoegt aan de markup om deze generieke code eruit te laten zien als een menu in uw thema en vervang de indelingen die worden weergegeven volgens uw behoeften..

Postformaten verwijderen uit de hoofdblogindex

Nu je een menu hebt voor je postformaten, wil je misschien berichten van bepaalde formaten uitsluiten van je hoofdblogindex. Hiermee kunt u uw blog gebruiken als een blog en het menu voor post-opmaak om video's, afbeeldingen, audiobestanden of andere opgemaakte berichten te markeren.

Als u berichten met een bepaalde indeling wilt behouden, moet u een pre_get_post filter om een ​​toe te voegen tax_query naar de hoofdvraag. De tax_query lijkt op degene die ik je al liet zien, maar zal een extra argument hebben om berichten met het formaat uit te sluiten, met behulp van het argument "operator". Door de operator in te stellen op "NOT IN" worden overeenkomstige berichten uitgesloten.

Deze vraag zal ook worden ingepakt in het voorwaardelijke is thuis() om ervoor te zorgen dat dit alleen van invloed is op de hoofdblogindex. 

Hier is wat de actie en callback-functie eruit zien:

add_action ('pre_get_posts', 'slug_no_videos_home'); function slug_no_videos_home ($ query) if ($ query-> is_home () && $ query-> is_main_query ()) $ tax_query = array (array ('taxonomy' => 'post_format', 'field' => 'slug' , 'terms' => 'post-format-video', 'operator' => 'NIET IN',)); $ query-> set ('tax_query', $ tax_query);  return $ query; 

Zoals u in de callback kunt zien, definiëren we a tax_query, de ... gebruiken NIET IN operator en gebruik vervolgens de ingestelde methode om de tax_query naar de hoofdquery van de blogindex.

Ga verder en Formatteer

Doorheen deze vijfdelige serie, heb je geleerd wat postformaten zijn, hoe je ze kunt toevoegen aan je thema, hoe je ze kunt gebruiken in de loop, ze kunt targeten met aangepaste CSS, bulkupdates kunt maken en ze kunt gebruiken als contentorganisator. gereedschap. 

Gewapend met deze kennis, kunt u meer krachtige thema's maken die gegevensportabiliteit een fluitje van een cent maken.