it-swarm.com.de

Abrufen der aktuellen Beitrags-ID in functions.php

Ich muss die aktuelle Beitrags-ID in ein Array in meiner functions.php eintragen.

function filter_query(  $query ) {
    $query['post__not_in'] = array(7);
    return $query;
}
add_filter('wpc_query', 'filter_query', 1 );

get_the_ID(); oder global $post; $id = $post->ID; hat aus bestimmten Gründen nicht funktioniert.

1
CaraMar

Ich glaube, das sollte auf jeden Fall funktionieren - egal, ob Sie auf dem Laufenden sind oder nicht. (In einem Widget sind Sie wahrscheinlich nicht in der Schleife)

Allerdings funktioniert dies außerhalb der Schleife sehr gut auf einzelnen Seiten oder Posts, zeigt jedoch möglicherweise nicht den gewünschten Post auf anderen Seitentypen an. (Homepage, Kategorieseiten, ...) In diesen Fällen möchten Sie möglicherweise eine Bedingung hinzufügen, um Ihren Code nur auf einer einzelnen Seite unter Verwendung von WordPress ' is_singular function ... auszuführen.

Wie auch immer, hier ist eine überarbeitete Version Ihres Codes:

function filter_query( $query ) {
    if(in_the_loop()) $post_id = get_the_ID();
    else $post_id = get_queried_object_id();
    if($post_id) {
        if(empty($query['post__not_in'])) $query['post__not_in'] = array(); // that way if someone else already has stuff in $query['post__not_in'], we won't override it but append to it...
        $query['post__not_in'][] = $post_id;
    }
    return $query;
}
add_filter('wpc_query', 'filter_query', 1 );

Hoffe das hilft!

2
MacPrawn