Kategorier
Tips og triks Utvikling

Flersidede innlegg i WordPress

Lag en enkel og fin sideliste i flersidede innlegg

Den siste tiden har jeg fundert på å legge ut en liten test av en bærbar datamaskin, men jeg følte at bloggen manglet en vesentlig ting – støtte for flere sider i det enkelte innlegg.

Etter en liten runde med Google, fant jeg fort ut at dette er støttet av motoren, men ikke alt var så flott som jeg ville ha det.

Bruken er enkel. Man redigerer HTML-en for innlegget sitt og legger inn en <!--nextpage--> (uten mellomrom her, altså!) hvor man vil ha et sideskille. I motsetning til <!--more-->-taggen, kan man bruke <!--nextpage--> flere ganger.

En annen løsning er hurtigtasten alt+shift+p, mens en tredje løsning er å redigere wp-admin/includes/post.php, søke opp «wp_more» og legge til «wp_page» i $mce_buttons-arrayet.

Funksjonen wp_link_pages(), som ser ut til å være den eneste funksjonen tilknyttet dette, lager bare en veldig enkel liste med sidene, men du kan for eksempel ikke få den ut som en HTML-liste (<ol>/<ul>). I tillegg var det ikke mulig å titulere sidene. Kort oppsummert var ikke støtten så alt for god, så jeg endte opp med å lage noe selv.

Jeg laget en funksjon kalt wp_post_page_list() i functions.php som gir deg en fin organisert liste (<ol>) om innlegget har flere sider. Den tar også utgangspunkt i at det eksisterer et <h[1-6]>-element rett etter <!--nextpage-->-deleren, som da blir benyttet som sidetittel.

I bruk er den enkel: <?php echo wp_post_page_list(); ?>

Man kan også få en egen knapp i editoren for å skille, altså lage sider. Denne vil havne ved siden av knappen som brukes til å lage et såkalt «mer-skille», også brukt til ingress/utdrag. Hvordan man gjør dette, finner du på neste side. Kildekoden for funksjonen wp_post_page_list() er på siste side 🙂