Cum să obții ID-ul postării curente pentru un tip de postare personalizat într-o buclă folosind șablonul single-{custom type}.php?
Am un șablon pentru un tip de postare personalizat unde parcurg toate postările într-o buclă. Ceea ce încerc să fac este ca atunci când accesez pagina postării personalizate să obțin ID-ul postării curente din buclă.
Așa că am încercat să verific dacă permalink-ul este același pentru postarea din interiorul buclei și dacă este identic, voi obține ID-ul postării curente din buclă.
Iată codul pe care l-am încercat
Mai întâi încerc să obțin permalink-ul în exterior pentru a-l verifica în interiorul buclei
$permalink = get_permalink();
Acum că am obținut permalink-ul postării curente, vreau să obțin ID-ul postării curente
if($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
if(the_permalink()==$permalink){
echo get_the_ID();
}else{
echo "nu a fost găsit";
}
endwhile;
wp_reset_postdata();
endif;
Am încercat aceste lucruri în single-{custom-post-name}.php
și primesc nu a fost găsit
.
Poate cineva să-mi ofere o modalitate de a obține ID-ul postării curente în acest șablon?
Deci ai două bucle: bucla principală și a doua care folosește $query
.
Vrei să compari dacă la un moment dat în a doua buclă există o potrivire între postul curent (din buclă) și postul procesat în bucla $query
.
Am înțeles corect?
În loc să verifici permalink-uri, aș sugera să verifici ID-uri.
Deci, în prima buclă creezi o variabilă cu ID-ul postului curent:
$current_post_id = $post->ID;
iar în a doua buclă doar compari:
if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
if( $current_post_id === $post->ID ) {
echo $post->ID;
} else {
echo "nu s-a găsit";
}
endwhile; wp_reset_postdata(); endif;
Nu sunt sigur că asta cauți, spune-ne.
PS: Ar trebui să adaug să folosești un nume mai specific pentru interogarea ta, doar pentru a evita coliziuni de nume de la un plugin sau altceva, cum ar fi $my_prefix_query

Ai dreptate, căutam același lucru. Anterior nu știam să folosesc bucla implicită have_post. Credeam că va prelua toate articolele. Dar când am încercat, am aflat că va prelua doar articolul curent. Așa că am folosit get_the_id()
și l-am atribuit unei variabile, apoi l-am utilizat în bucla de interogare. Mulțumesc @Simon
