Sticky Posts toevoegen in WordPress Custom Post Type Archives
Onlangs vroeg een van onze gebruikers ons of het mogelijk was om plakkerige berichten toe te voegen aan aangepaste archieven van het posttype. Standaard heeft WordPress de plakfunctionaliteit beschikbaar voor berichten, maar niet voor andere berichttypen. In dit artikel laten we je zien hoe je kleverige berichten toevoegt in WordPress aangepaste archieven van het posttype. Voordat we verder gaan, wil je waarschijnlijk leren hoe je aangepaste berichttypen kunt maken in WordPress.
Sticky Posts toevoegen in Custom Post Types
Het eerste wat u hoeft te doen is de plug-in Sticky Custom Post Types installeren en activeren. Nadat u de plug-in hebt geactiveerd, gaat u naar Instellingen »Lezen en scrol omlaag naar het gedeelte Kleverige aangepaste berichttypen. Vervolgens moet u de aangepaste berichttypen kiezen die u wilt blokkeren. Deze optie moet worden ingeschakeld.
Wat we hier hebben gedaan, is dat we een functie met sticky posts hebben toegevoegd aan onze aangepaste berichttypen. Kleverige berichten in aangepaste berichttypen worden op de voorpagina weergegeven, net als normale plaknotities.
Het probleem is dat WordPress standaard alleen plaknotities op de startpagina laat zien. Het toont geen plakkerige berichten op archiefpagina's.
Sticky Posts weergeven in aangepaste berichttypearchieven
Laten we aannemen dat u een aangepast berichttype voor filmrecensies met plaknotities heeft ingeschakeld met behulp van de plug-in die we hierboven hebben genoemd. Nu wil je dat je sticky posts in filmrecensies posttypen anders weergeven en bovenop niet-plakkerige reguliere filmrecensies. Zoals dit:
Om dit doel te bereiken, is het eerste wat je nodig hebt een archiefsjabloon voor je aangepaste berichttype als dit: archief-post-type.php
. Leer hoe u een aangepaste archiefpagina voor het posttype maakt. Bijvoorbeeld als u een aangepast berichttype hebt movie-beoordelingen
dan zou je archiefpaginasjabloon moeten zijn archief-movie-reviews.php
. Als je geen sjabloon hebt, maak er dan een aan. Kopieer eenvoudig de inhoud van archive.php in de directory van uw thema en plak deze in een nieuw bestand archief-your-post-type.php
.
De volgende stap is om deze code toe te voegen aan je thema's functions.php
het dossier:
function wpb_cpt_sticky_at_top ($ posts) // pas het alleen op de archieven toe als (is_main_query () && is_post_type_archive ()) global $ wp_query; $ sticky_posts = get_option ('sticky_posts'); $ num_posts = count ($ posts); $ sticky_offset = 0; // Vind de sticky posts voor ($ i = 0; $ i ID, $ sticky_posts)) $ sticky_post = $ posts [$ i]; // Verwijder kleverig van huidige positie array_splice ($ posts, $ i, 1); // Verplaats naar voren, na andere stickies array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ Sticky_offset ++; // Verwijder bericht van plakkaten posts array $ offset = array_search ($ sticky_post-> ID, $ sticky_posts); niet ingesteld ($ sticky_posts [$ offset]); // Kijk indien nodig naar meer plakkerige berichten als (! Empty ($ sticky_posts)) $ stickies = get_posts (array ('post__in' => $ sticky_posts, 'post_type' => $ wp_query-> query_vars ['post_type' ], 'post_status' => 'publiceren', 'nopaging' => waar)); foreach ($ stickies als $ sticky_post) array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ Sticky_offset ++; return $ posts; add_filter ('the_posts', 'wpb_cpt_sticky_at_top'); // Plak de klasse in de titel van het artikel om kleverige berichten op een andere manier te functie cpt_sticky_class ($ classes) if (is_sticky ()): $ classes [] = 'sticky'; return $ klassen; stop als; return $ klassen; add_filter ('post_class', 'cpt_sticky_class');
De bovenstaande code zou je plaknotities naar de top verplaatsen en als je thema gebruikt post_class ()
functie, dan zou het plakkerig in de postklasse worden toegevoegd.
Je kunt je plaknotities stijlen met behulp van .kleverig
klasse in uw stylesheet. Voorbeeld:
.plakkerig achtergrondkleur: #ededed; background-image: url ( 'http://example.com/wp-content/uploads/featured.png'); background-repeat: no-repeat; achtergrond-positie: rechtsboven;
We hopen dat dit artikel u heeft geholpen om plakkerige berichten toe te voegen aan aangepaste archieven van het posttype. Voor vragen en feedback kunt u hieronder een reactie achterlaten.
Bron: Tareq Hasan