wake-up-neo.net

Der Link zum vorherigen und nächsten Beitrag funktioniert nicht

In single.php habe ich versucht, den previous_post_link und den next_post_link in die Schleife einzufügen. Aber nichts wird gerendert, wenn man die Quelle der Seite ansieht. Ich habe den previous_post_link in ein h4 -Tag eingefügt, um ihn besser sehen zu können. Normalerweise füge ich es in pagination-bottom hinzu. Warum passiert dies?

Hier ist mein Code

    <?php if (have_posts()) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <div class="single-post-wrap col-8 Push-2">
            <div class="single-post-feat-img">
                <figure>
                    <?php the_post_thumbnail('news-thumb-single-post') ?>
                </figure>
            </div>
            <article>
                <h4><?php echo get_the_title(); ?></h4>
                <h6><?php echo get_the_date(); ?></h6>
                <hr>
                <p><?php the_content(); ?></p>
                <h4><?php previous_post_link('%link', 'Pre Post', TRUE); ?></h4>
                <hr>
            </article>
            <div class="pagination-bottom">
                <div class="pre-post">
                <a href=""><i class="fa fa-angle-left"></i>Προηγούμενο</a>
                </div>
                <div class="next-post"><a href="">Επόμενο<i class="fa fa-angle-right"></i></a>
                </div>
            </div>
        </div>   
    <?php endwhile; ?>
<?php endif; ?>
1
hambos22

EDIT

Unter Bezugnahme auf eine Ihrer vorherigen Fragen , auf die ich geantwortet habe, verwenden Sie benutzerdefinierte Taxonomien. Dies ist also höchstwahrscheinlich Ihr Problem. Sie müssen dann den Parameter taxonomy entsprechend einstellen. Siehe meine ursprüngliche Antwort

URSPRÜNGLICHE ANTWORT

Hier gibt es ein paar Dinge zu überprüfen

  • Wo ist dein next_post_link . Haben Sie standardmäßig ausgelassen?

  • Verwenden Sie Standardkategorien oder benutzerdefinierte Taxonomien? Wenn der Parameter $in_same_term auf true festgelegt ist, ist der Parameter taxonomy standardmäßig auf category festgelegt. Wenn Sie benutzerdefinierte Taxonomien verwenden, müssen Sie den Parameter taxonomy auf Ihre benutzerdefinierte Taxonomie einstellen

Wenn dies alles funktioniert, versuchen Sie es mit der Navigation des vierundzwanzig-Themas und sehen Sie, was passiert.

function twentyfourteen_post_nav() {
    // Don't print empty markup if there's nowhere to navigate.
    $previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true );
    $next     = get_adjacent_post( false, '', false );

    if ( ! $next && ! $previous ) {
        return;
    }

    ?>
    <nav class="navigation post-navigation" role="navigation">
        <h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentyfourteen' ); ?></h1>
        <div class="nav-links">
            <?php
            if ( is_attachment() ) :
                previous_post_link( '%link', __( '<span class="meta-nav">Published In</span>%title', 'twentyfourteen' ) );
            else :
                previous_post_link( '%link', __( '<span class="meta-nav">Previous Post</span>%title', 'twentyfourteen' ) );
                next_post_link( '%link', __( '<span class="meta-nav">Next Post</span>%title', 'twentyfourteen' ) );
            endif;
            ?>
        </div><!-- .nav-links -->
    </nav><!-- .navigation -->
    <?php
}

Rufe es einfach mit twentyfourteen_post_nav() in deiner single.php auf

EDIT 2

Ich habe Ihren Code ein wenig geändert. Hier sind die Änderungen

  • Verwenden Sie nicht echo get_the_title() und echo get_the_date(). Sie können einfach die zurückgegebenen Funktionen the_title() und the_date verwenden

  • Ich habe <h4><?php previous_post_link('<p id="next-link">%link</p>', 'Next Post', TRUE); ?></h4> aus Ihrem <article> -Tag entfernt

  • Ich habe alles alles in <div class="pagination-bottom"></div> entfernt und durch die vierundzwanzig Navigationsfunktionen ersetzt

Wie getestet, funktioniert das auf meiner Seite perfekt. Sie sollten jetzt nur die Paginierungsfunktion ändern, die ich in meinerORIGINAL ANTWORThinzugefügt habe, um sie Ihren Bedürfnissen anzupassen. Hier ist deine single.php modifiziert, wie ich es getestet habe und es funktioniert. Ich hoffe, das funktioniert auch für Sie

<?php get_header(); ?>
<div class="wrapper">
    <section class="container-12">
    <?php if (have_posts()) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <div class="single-post-wrap col-8 Push-2">
            <div class="single-post-feat-img">
                <figure>
                    <?php the_post_thumbnail('news-thumb-single-post') ?>
                </figure>
            </div>
            <article>
                <h4><?php the_title(); ?></h4>
                <h6><?php the_date(); ?></h6>
                <hr>
                <p><?php the_content(); ?></p>

                <hr>
            </article>
            <div class="pagination-bottom">
              <?php twentyfourteen_post_nav(); ?>
            </div>
        </div>

    <?php endwhile; ?>
<?php endif; ?>
    </section>
    <div class="clear"></div>
    <div class="Push"></div>
</div>
<?php get_footer(); ?>

EDIT3

Es scheint, dass Ihr Code nichts mit Ihrem Problem zu tun hat. Es scheint, dass Wordpress den nächsten oder vorherigen Beitrag nicht erhält. Aus diesem Grund werden Ihre Links nicht angezeigt. Schritte zum Debuggen Ihres Problems. Überprüfen Sie nach jedem Schritt, ob Ihr Problem weiterhin besteht

  • Setzen Sie debug auf true und suchen Sie nach Fehlern. Lesen Sie auch Debugging Wordpress

  • Leeren Sie den Browser-Cache, indem Sie Strg und F5 drücken. Wenn Sie Cache-Plugins installiert haben, löschen Sie auch deren Caches

  • Deaktiviere alle Plugins nacheinander. Aktualisieren Sie nach der Deaktivierung eines bestimmten Plugins Ihre Site und überprüfen Sie, ob Ihr Problem weiterhin besteht

  • Wenn dies fehlschlägt, wechseln Sie zu einem der gebündelten Themen wie vierundzwanzig. Testen Sie Ihre Site erneut

  • Wenn Ihr Problem weiterhin besteht, sind Ihre Wordpress-Kerndateien möglicherweise beschädigt. Wenn Sie das vermuten, sichern Sie Ihre gesamte Datenbank und installieren Sie wordpress neu. Wordpress 3.9.2 wurde gerade veröffentlicht, nehmen Sie also das Upgrade vor

EDIT 4

Aus Ihren Kommentaren,

Ich habe die WordPress-Kerndateien neu installiert, alle Plugins deaktiviert und zu Twenty-Fourteen gewechselt, aber nichts. Dann habe ich eine weitere WordPress-Installation bereitgestellt. Es ist nicht MAMPs Schuld. Ich bin sicher, es ist die Schuld der Datenbank. Denn für eine frische WordPress-Datenbank funktioniert die vorherige und nächste Funktion einwandfrei

es ist eindeutig kein Problem mit Ihrem Code. Es scheint ein Permalink-Problem zu sein, oder, wie Sie sagten, ein DB-Problem. Laden und installieren Sie WP_DBManager , reparieren und optimieren Sie Ihre Datenbank und prüfen Sie, ob Ihr Problem behoben ist.

EDIT 5

Ich glaube, auf der anderen Seite des Tunnels könnte es gerade hell sein. Der Benutzer in diesem Beitrag hatte genau das gleiche Problem, und keine dieser Antworten auf Ihre Frage hat funktioniert. Dies ist ziemlich verwirrend, wenn man berücksichtigt, dass diese Lösungen erprobt und getestet wurden.

Anscheinend hat der Benutzer anhand der Antwort auf seine eigene Frage den Schuldigen gefunden. Er verwendet einen Massenersteller, um Posts zu erstellen, und das führt dazu, dass seine Paginierung fehlschlägt. Schau dir seine Antwort an hier

EDIT 6 BEHOBEN

Laut Kommentar des OP wurde das Problem durch doppelte Beiträge verursacht.

1
Pieter Goosen

Der dritte Parameter in Ihrem Funktionsaufruf previous_post_link() ist auf true gesetzt. Dadurch werden alle Ergebnisse auf Beiträge beschränkt, die in derselben Kategorie wie der aktuelle Beitrag enthalten sind. Setzen Sie den dritten Parameter auf false (oder entfernen Sie ihn vollständig) und prüfen Sie, ob dies einen Unterschied macht.

Wenn der dritte Parameter beabsichtigt ist, stellen Sie sicher, dass Sie tatsächlich Beiträge in derselben Kategorie wie der aktuelle Beitrag haben. Wenn Sie eine benutzerdefinierte Taxonomie verwenden, müssen Sie den Namen der benutzerdefinierten Taxonomie als fünften Parameter angeben:

previous_post_link( '%link', 'Pre Post', TRUE, '', 'my_custom_taxonomy' );
0
Philip Newcomer

Ersetzen Sie Ihren gesamten Paginierungscode durch diesen Code und ändern Sie die Klassen entsprechend Ihrem CSS. Sie können auch nach den in diesem Code enthaltenen Klassen in der Datei Twenty Twelves themes style.css suchen.

<nav class="nav-single">
<span class="nav-previous"><?php previous_post_link( '%link', '<span class="meta-nav">' . _x( '&larr;', 'Previous post link', 'twentytwelve' ) . '</span> %title' ); ?></span>
<span class="nav-next"><?php next_post_link( '%link', '%title <span class="meta-nav">' . _x( '&rarr;', 'Next post link', 'twentytwelve' ) . '</span>' ); ?></span>
</nav><!-- .nav-single -->

Basic CSS

.nav-previous {
    float: left;
    width: 50%;
}

.nav-next {
    float: right;
    text-align: right;
    width: 50%;
}

Quelle: Zwanzig zwölf

0
Brad Dalton