webentwicklung-frage-antwort-db.com.de

Kann ich einen bestimmten Beitrag auf der Seite mit den neuesten Beiträgen ausblenden?

Angenommen, ich habe einen Beitrag, der nur auf der Seite der Kategorie angezeigt werden soll, zu der er gehört. Das Problem ist, dass dieser Beitrag auch auf der Seite mit den neuesten Beiträgen angezeigt wird.

Gibt es eine Möglichkeit, diesen Beitrag von der letzten Beitragsseite auszublenden und nur auf der Seite der Kategorie des Beitrags anzuzeigen?

2
Renato Lochetti
function exclude_single_posts_home($query) {
  if ($query->is_home() && $query->is_main_query() && !is_admin()) {
    $query->set('post__not_in', array(post-id));
  }
}

add_action('pre_get_posts', 'exclude_single_posts_home');

Quelle: pre_get_posts

2
Brad Dalton

Da Sie die Kerneinstellungen für "Seite für Beiträge" verwenden, sollten Sie in der Lage sein, mit der tollen Aktion pre_get_posts die bestimmte ID zu entfernen, die Sie ausschließen möchten.

Dies sollte in Ihrer functions.php Datei oder Ihrem /mu-plugins/ Plugin funktionieren:

wpse94273_hide_post( $query ) {
    // only remove post ID from page_for_posts and in the main query
    if( $query->is_home() && $query->is_main_query() ) {
        // remove specific page ID from query
        query->set( 'post__not_in', array( {your post id} ) );
    }
}
add_action( 'pre_get_posts', 'wpse_94273_hide_post' );

Ersetzen Sie "{Ihre Beitrags-ID}" durch die ID des Beitrags, den Sie ausschließen möchten. Es ist eine array, sodass Sie bei Bedarf mehrere durch Kommas getrennte IDs eingeben können.

Wenn sich die Beitrags-ID ändert, müssen Sie mithilfe der Einstellungs-API eine Option einrichten, um die ID zu speichern, die Sie ausschließen möchten.

1
mrwweb

Ihre Frage ist schwer zu verstehen. Meinen Sie einen bestimmten Beitrag oder etwas Automatisches? Wenn Sie einen bestimmten Beitrag meinen und wenn Sie wp_query/query posts verwenden, um nach aktuellen Beiträgen zu suchen, können Sie diesen Parameter hinzufügen.

'post__not_in' => array($postId)

Beispielabfrage:

$relatedargs = array(
    'post__not_in'      => array($postId) // THIS IS THE LINE
);
$the_query = new WP_Query( $relatedargs );

// The Loop
if( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) : $the_query->the_post();

// YOUR LOOP HERE

endwhile; 
}

Hoffe das hilft ;

0
Sagive SEO