it-swarm.com.de

So stellen Sie fest, ob es eine nächste Seite gibt

Ich bin neu in der WordPress-Entwicklung und versuche gerade, mein HTML in ein WordPress-Theme zu konvertieren. Ich habe mit Chris Coyers leerem Theme begonnen.

<div class="navigation">
    <div class="next-posts">
        <?php next_posts_link('&laquo; Older Entries') ?>
    </div>
    <div class="prev-posts">
        <?php previous_posts_link('Newer Entries &raquo;') ?>
    </div>
</div>

Wie kann ich das div nur ausgeben, wenn es eine next_posts_link() gibt? Ich brauche dies, da ich <ul> für meine Paginierung verwenden werde. Wenn ich das nicht tue, bekomme ich eine leere Kugel

13
Jiew Meng

Sie können get_previous_posts_link und get_next_posts_link verwenden, um festzustellen, ob sie wie folgt vorhanden sind:

$prev_link = get_previous_posts_link(__('&laquo; Older Entries'));
$next_link = get_next_posts_link(__('Newer Entries &raquo;'));
// as suggested in comments
if ($prev_link || $next_link) {
  echo '<ul class="navigation">';
  if ($prev_link){
    echo '<li>'.$prev_link .'</li>';
  }
  if ($next_link){
    echo '<li>'.$next_link .'</li>';
  }
  echo '</ul>';
}

Hoffe das hilft

16
Bainternet

Ich habe das vor einiger Zeit geschrieben, sollte aber noch gültig sein:

http://www.ericmmartin.com/conditional-pagepost-navigation-links-in-wordpress-redux/

Sie können Ihrer functions.php-Datei die folgende Funktion hinzufügen:

/**
 * If more than one page exists, return TRUE.
 */
function show_posts_nav() {
    global $wp_query;
    return ($wp_query->max_num_pages > 1);
}

Aktualisieren Sie Ihren Code auf:

<?php if (show_posts_nav()) : ?>
<div class="navigation">
    <div class="next-posts"><?php next_posts_link('&laquo; Older Entries') ?></div>
    <div class="prev-posts"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php endif; ?>
11
Eric Martin

die beste Lösung ist das Überprüfen von $wp_query->max_num_pages, aber Sie können auch Folgendes verwenden:

<?php
if(paginate_links()) {
...
}
2
Maxwell s.c