it-swarm.com.de

Wie erhalte ich die aktuelle Beitrags-ID eines benutzerdefinierten Beitragstyps in einer Schleife mithilfe der Vorlage singel- {custom type} .php?

Ich habe eine benutzerdefinierte Beitragstypvorlage, in der alle Beiträge durchlaufen werden. Was ich versuche ist, wenn ich zu meiner benutzerdefinierten Post-Seite gehe, möchte ich die aktuelle Post-ID in der Schleife erhalten.

Also habe ich versucht zu überprüfen, ob der Permalink für den Beitrag in der Schleife identisch ist. Wenn er identisch ist, erhalte ich die Beitrags-ID des aktuellen Beitrags in der Schleife.

Hier ist der Code, den ich ausprobiert habe

Versuchen Sie zuerst, den Permalink nach außen zu bringen, um ihn in der Schleife zu überprüfen

$permalink = get_permalink();

Jetzt habe ich den Permalink für den aktuellen Beitrag. Jetzt möchte ich die ID des aktuellen Beitrags erhalten

if($query->have_posts()) : 
    while ($query->have_posts()) : $query->the_post();
        if(the_permalink()==$permalink){
            echo get_the_ID();
        }else{
            echo "not found";
        }
    endwhile;
    wp_reset_postdata();
endif;

Ich habe diese Dinge in single-{custom-post-name}.php ausprobiert und erhalte not found. Kann mir jemand eine Möglichkeit geben, die aktuelle Beitrags-ID in dieser Vorlage abzurufen?

2
sun

Sie haben also zwei Schleifen: die Hauptschleife und die zweite mit $query.

Sie möchten vergleichen, ob irgendwann in Ihrer zweiten Schleife eine Übereinstimmung zwischen dem aktuellen Beitrag (innerhalb der Schleife) und dem verarbeiteten Beitrag in der $query-Schleife vorliegt.

Habe ich recht ?

Anstatt Permalinks zu überprüfen, würde ich vorschlagen, IDs zu überprüfen.

In der ersten Schleife erstellen Sie eine Variable mit der aktuellen Beitrags-ID:

$current_post_id = $post->ID;

und in deiner zweiten Schleife vergleichst du nur:

if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();

    if( $current_post_id === $post->ID ) {
         echo $post->ID; 
    } else {
        echo "not found";
    }

endwhile; wp_reset_postdata(); endif;

Sie sind sich nicht sicher, wonach Sie suchen, lassen Sie es uns wissen.

PS: Ich sollte hinzufügen, dass ein spezifischerer Name für Ihre Abfrage verwendet wird, um Namenskollisionen durch ein Plugin oder ähnliches wie $my_prefix_query zu vermeiden.

3
Simon