Mit WordPress herausfinden ob die aktuelle Seite in mehrere Seiten unterteilt wurde („paged“)

Wenn man herausfinden möchte, ob die aktuelle Seite in mehrere Unterseiten gesplittet wurde, funktioniert is_paged() nur ab Seite 2. Hier steht, wie man sonst noch vorgehen kann:

Was ist „paged“?

In WordPress gibt es die Möglichkeit lange Seiten auf mehre Seiten zu verteilen oder umzubrechen. Früher gab es dazu einen separaten Button, der aber irgendwann aus dem Editor verschwunden ist. Wahrscheinlich im Zuge vieler Vereinfachungen. Trotzdem ist die Funktion noch vorhanden und kann genutzt werden.

WordPress Page Break Button
Der Page-Break Button von WordPress (bevor er entfernt wurde).

Einen so genannten „Page Break“ erreicht man folgendermaßen:

  • Für alle, die es einfach haben wollen, können das Plugin TinyMCE Page Break Button nutzen.
  • Wer auf Tastenkombinationen steht kann mittels ALT+Shift+P das selbe erreichen.
  • Alternativ fügt man im Quellcode folgendes ein: <!--nextpage-->.

Wie im Code nutzen?

Es gibt die Funktion is_paged(). Sie gibt einen boolschen Wert zurück der darlegt, ob man sich gerade auf einer Seite befindet, die „umgebrochen“ wurde (engl. „paged“). Allerdings funktioniert das nur auf Seiten deren Page-Wert größer als 1 ist (d.h. auf Seite zwei und folgend).

Wer wissen will, ob die aktuelle Seite generell Seitenumbrüche hat kommt nicht daran vorbei, die Vorkommen von <!--nextpage--> zu zählen. Und das könnte wie folgt aussehen:

<?php
/**
 * Counts page breaks.
 *
 * @return bool|int
 */
function count_page_breaks() {

	global $wp_query;

	if ( ! isset( $wp_query->queried_object ) ) {
		return false;
	}

	$post = $wp_query->queried_object;

	if ( ! is_a( $post, 'WP_Post' ) ) {
		return false;
	}

	return substr_count( $post->post_content, '<!--nextpage-->' ) + 1;
}

?>