webentwicklung-frage-antwort-db.com.de

Ausschließen von Beiträgen aus bestimmten Kategorien aus den Links "Nächster" und "Vorheriger Beitrag"

Ich habe viel danach gesucht ... aber alles, was ich bekomme, ist nicht das, was ich brauche. Ich möchte einfach die nächsten und vorherigen Links auf single.php anzeigen (aus allen Kategorien, basierend auf dem Veröffentlichungsdatum, nicht nur in derselben Kategorie), sondern eine Kategorie überspringen. Wenn sich der nächste (oder vorherige) Beitrag in der Kategorie ID 402 befindet, überspringen Sie den Beitrag und holen Sie sich den nächsten (oder vorherigen).

dieser einfache Code <?php next_post_link(); ?> funktioniert sehr gut, aber ich brauche ihn nur, um die Beiträge der Kategorie 402 zu überspringen. Ich möchte auch nicht den Titel der Beiträge verwenden, sondern nur die Links, die zu "Weiter" und "Zurück" hinzugefügt wurden Anker

danke dir

1
whitelord

Verwenden Sie den 4. Parameter $ excluded_terms http://codex.wordpress.org/Function_Reference/next_post_link

<?php next_post_link( $format, $next, $in_same_term = true, $excluded_terms = '402', $taxonomy = 'category' ); ?>

Gleiches gilt für den vorherigen_post_link http://codex.wordpress.org/Template_Tags/previous_post_link

$previous = '<span class="meta-nav">Previous Post</span>';
$next = '<span class="meta-nav">Next Post</span>';

<?php previous_post_link( $format, $previous, $in_same_term = true, $excluded_terms = '402', $taxonomy = 'category' ); ?>

Oder Sie können ein Template-Tag erstellen, wie es in Twenty Fourteen enthalten ist

if ( ! function_exists( 'twentyfourteen_post_nav' ) ) :
/**
 * Display navigation to next/previous post when applicable.
 *
 * @since Twenty Fourteen 1.0
 */
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>', 'twentyfourteen' ) );
                next_post_link( '%link', __( '<span class="meta-nav">Next Post</span>', 'twentyfourteen' ) );
            endif;
            ?>
        </div><!-- .nav-links -->
    </nav><!-- .navigation -->
    <?php
}
endif;
1
Brad Dalton

Dies ist, wofür die benutzerdefinierten Beitragstypen bestimmt sind - separate, nicht verwandte Inhaltstypen. Für Ihre Beschreibung klingt es so, als ob die Kategorie 402 keine Inhalte enthält, die für den Leser relevant sind, wenn er auf der Website navigiert. Die nächsten/vorherigen Links sind jedoch nicht der einzige Ort, mit dem Sie sich möglicherweise befassen müssen, und Sie müssen auch das Kalender-Widget hacken , Widget für die letzten Beiträge und Kommentare, RSS-Feed-Generierung und dann gibt es alle Arten von Plugins, die Sie ebenfalls hacken müssen.

Sie können wahrscheinlich diese next/prev-Funktionen hacken oder sogar eine eigene schreiben, aber der zukunftssichere Weg ist, Ihren Code zu ändern, um stattdessen CPT zu verwenden.

0
Mark Kaplun