Obține ID-ul postării în bucle while care returnează ID-ul paginii
A trecut ceva timp de când am folosit WordPress și încerc să utilizez Advanced Custom Fields. Încerc să afișez ID-ul postării într-o buclă pe o pagină, pentru a putea folosi get_field pentru a afișa conținutul postării. $post->ID îmi returnează ID-ul paginii, nu ID-ul postării, așa că este afișat un număr greșit. Cum pot obține ID-ul postării?
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $current_id = $post->ID ?>
<?php echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1>
<?php endwhile; // sfârșitul buclei ?>
<?php endif; ?>

Nu utiliza query_posts
sau WP_Query
dacă ai nevoie de ele în bucla principală. În orice caz, nu utiliza niciodată query_posts
.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $current_id = get_the_ID(); ?>
<?php echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1>
<?php endwhile; // sfârșitul buclei. ?>
<?php endif; ?>
Deoarece: get_the_ID()

Vă rugăm să nu folosiți query_posts()
Notă: Această funcție nu este destinată să fie utilizată de pluginuri sau teme. După cum se explică mai jos, există opțiuni mai bune și mai performante pentru a modifica interogarea principală. query_posts() este o modalitate prea simplistă și problematică de a modifica interogarea principală a unei pagini prin înlocuirea acesteia cu o nouă instanță a interogării. Este ineficientă (re-execută interogări SQL) și va eșua în anumite circumstanțe (mai ales când vine vorba de paginarea postărilor). Orice cod WP modern ar trebui să utilizeze metode mai fiabile, cum ar fi utilizarea hook-ului pre_get_posts, în acest scop.
În cazul dvs., creați o buclă secundară pe o pagină, așa că ceea ce doriți este un nou obiect WP_Query
.
$q = new WP_Query(
array(
'posts_per_page' => 5
)
);
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
$current_id = $post->ID;
echo $current_id ?>
<h1><?php the_field('titleFart', $current_id); ?></h1><?php
} // sfârșitul buclei.
}

Folosește wp_query() cu parametrii tăi în loc. Query_posts încetinește interogările tale. http://codex.wordpress.org/Class_Reference/WP_Query
