Bugis für WP-PageNavi anpassen

Mein neues WordPress Theme Bugis bringt von Haus aus eine Unterstützung für WP PageNavi mit. So steht es jedenfalls in der Beschreibung des Theme. Leider beschränkt sich diese Unterstützung in der Bereitstellung des entsprechenden CSS-Codes. Das ist zwar ein Großteil der Arbeit, aber es wäre schon schön gewesen, wenn auch in den Theme-Dateien selber bereits das Plugin integriert wäre. Und zwar mit einer Abfrage, ob das Plugin installiert und aktiviert ist. Und im Fall des Nichtvorhandenseins von WP-PageNavi sollte eine Fallback-Lösung angeboten werden.

Abfragen ob WP-PageNavi aktiviert ist

Die Abfrage ist relativ simpel für den PHP-Kenner. Ellen von Elmastudio veröffentlichte diesen Code bereits 2009:

<?php if(function_exists(‚wp_pagenavi‘)) { wp_pagenavi(); } ?>

Dieser Code fragt allerdings nur ab, ob WP-PageNavi aktiv ist und lädt es dann. Ist PageNavi aber nicht aktiviert, steht man ohne entsprechende Navigationselemente dar.

Abfrage mit Fallback-Funktion

Mit Hilfe eines älteren Artikels von Webdemar, habe ich schnell folgenden Code zusammen geschrieben. Dieser fragt ab, ob WP-PageNavi aktiv ist und lädt es dann. Wenn es nicht aktiv ist, dann wird die originale Navigation des Bugis-Theme geladen:

<?php if(function_exists(‚wp_pagenavi‘)) : wp_pagenavi(); else: ?>
<div class=“nav-next“>

<?php previous_posts_link( __( ‚Newer posts <span class=“meta-nav“></span>‘, ‚bugis‘ ) ); ?></div>

<div class=“nav-previous“><?php next_posts_link( __( ‚<span class=“meta-nav“>&larr;</span> Older posts‘, ‚bugis‘ ) ); ?>

</div><?php endif; ?>

Wo wird das im Bugis-Theme eingefügt?

In der entsprechenden Template-Datei sucht man die 2. und 3. Zeilen aus dem obigen Code. Und ohne etwas anderes zu löschen, fügt man zusätzlich die Zeilen 1 und 4 aus dem obigen Code ein.

Es ist sinnvoll für solche Anpassungen mit einem Child-Theme zu arbeiten. Damit gehen die Änderungen nicht so leicht verloren, wenn das Theme mal ein Update erhält. Oder man weiß, in welchen Dateien man seine eigenen Anpassungen erneut einfügen muss.
Ich habe den Code für WP-PageNavi in folgende Template-Dateien implementiert:

  • Archives (archive.php)
  • Author Template (author.php)
  • Category Template (category.php)
  • Main Index Template (index.php)
  • Search Results (search.php)
  • Tag Template (tag.php)
WP-PageNavi integriert Seitenzahlen
WP-PageNavi integriert Seitenzahlen

Damit dürfte an allen Stellen PageNavi in das Bugis-Theme eingefügt worden sein, wo ansonsten nur die einfachen „Ältere“ bzw. „Neuere Artikel“-Links zu sehen sind.