Slik legger du til klebrig innlegg i WordPress Custom Post Type Archives

Slik legger du til klebrig innlegg i WordPress Custom Post Type Archives / Guider

Nylig spurte en av brukerne oss om det var mulig å legge til klissete innlegg i egendefinerte innleggstypearkiver. Som standard har WordPress den klebrige funksjonaliteten tilgjengelig for innlegg, men ikke for andre innleggstyper. I denne artikkelen vil vi vise deg hvordan du legger til klissete innlegg i WordPress-tilpassede posttypearkiver. Før vi går videre, vil du sannsynligvis ønske å lære å lage egendefinerte innleggstyper i WordPress.

Legge til klare innlegg i egendefinerte innleggstyper

Første du trenger å gjøre er å installere og aktivere Plugget Custom Post Types plugin. Når du har aktivert pluginet, går du til Innstillinger »Lesing og bla ned til delen Sticky Custom Post Types. Deretter må du velge de egendefinerte innleggstyper der du vil ha Stick Dette alternativet skal aktiveres.

Nå er det vi har gjort her, at vi har lagt til klissete innleggsfunksjoner til våre egendefinerte innleggstyper. Sticky innlegg i egendefinerte innleggstyper vil bli vist på forsiden, akkurat som vanlige klissete innlegg.

Problemet er at standard WordPress bare viser klissete innlegg på hjemmesiden. Det viser ikke klissete innlegg på arkivsidene.

Viser klare innlegg i egendefinerte innleggstypearkiver

Vi antar at du har en egendefinert innleggstype for Filmanmeldelser med klissete innlegg aktivert ved hjelp av pluginet vi har nevnt ovenfor. Nå vil du ha dine klissete innlegg i filmanmeldelser, posttyper som skal vises annerledes og på toppen av ikke-klissete vanlige filmanmeldelser. Som dette:

For å oppnå dette målet, er det første du trenger en arkivmal for din egendefinerte innleggstype som denne: arkiv-post-type.php. Lær hvordan du oppretter egendefinert posttype arkivside. For eksempel, hvis du har en egendefinert innleggstype film-anmeldelser så må arkivmalen din være arkiv-film-reviews.php. Hvis du ikke har en mal, opprett en. Bare kopier innholdet i archive.php i temaets katalog og lim dem inn i en ny fil arkiv-your-post-type.php.

Det neste trinnet er å legge til denne koden i temaet ditt functions.php fil:

 funksjon wpb_cpt_sticky_at_top ($ innlegg) // bruk det bare på arkivene hvis (is_main_query () && is_post_type_archive ()) global $ wp_query; $ sticky_posts = get_option ('sticky_posts'); $ num_posts = count ($ innlegg); $ sticky_offset = 0; // Finn de klissete innleggene for ($ i = 0; $ i ID, $ sticky_posts)) $ sticky_post = $ innlegg [$ i]; // Fjern klebrig fra nåværende posisjon array_splice ($ innlegg, $ i, 1); // Flytt til forsiden, etter andre klistremerker array_splice ($ innlegg, $ sticky_offset, 0, array ($ sticky_post)); $ Sticky_offset ++; // Fjern post fra klissete innlegg array $ offset = array_search ($ sticky_post-> ID, $ sticky_posts); unset ($ sticky_posts [$ offset]);  // Se etter flere klissete innlegg om nødvendig hvis (! Tomt ($ sticky_posts)) $ stickies = get_posts (array ('post__in' => $ sticky_posts, 'post_type' => $ wp_query-> query_vars ['post_type' ], 'post_status' => 'publiser', 'nopaging' => true)); foreach ($ stickies som $ sticky_post) array_splice ($ innlegg, $ sticky_offset, 0, array ($ sticky_post)); $ Sticky_offset ++;  returnere $ innlegg;  add_filter ('the_posts', 'wpb_cpt_sticky_at_top'); // Legg til klissete klasse i artikkeltittelen til stil klebrig innlegg annerledes funksjon cpt_sticky_class ($ klasser) if (is_sticky ()): $ classes [] = 'sticky'; returner $ klasser; slutt om; returner $ klasser;  add_filter ('post_class', 'cpt_sticky_class'); 

Ovennevnte kode vil flytte dine klissete innlegg til toppen, og hvis temaet ditt bruker post_class () funksjon, så vil det legge til klistrede i postklassen.

Du kan style dine klebrig innlegg ved å bruke .klissete klassen i stilarket ditt. Eksempel:

 .klebrig bakgrunnsfarge: #ededed; background-image: url ( 'http://example.com/wp-content/uploads/featured.png'); background-repeat: no-repeat; bakgrunnsposisjon: høyre topp;  

Vi håper denne artikkelen hjalp deg med å legge til klissete innlegg i egendefinerte innleggstypenavn. For spørsmål og tilbakemelding vennligst legg igjen en kommentar nedenfor.

Kilde: Tareq Hasan