Saya tidak yakin mengapa, tetapi saya sudah terbiasa get_posts()
menanyakan beberapa data. Lalu saya menggunakan setup_postdata()
... Saya pikir itu digunakan sehingga saya dapat menggunakan fungsi seperti the_permalink()
dll dengan data posting baru?
<?php foreach ($childPosts as $cp) : setup_postdata($cp); ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<?php if (has_post_thumbnail()) : ?>
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(($hasOutputNotFeaturedDiv) ? 'thumb-small' : null) ?></a>
<?php endif; ?>
<?php the_excerpt(); ?>
<p class="more"><a href="<?php the_permalink() ?>">Read more ...</a></p>
<?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
</article>
<?php endforeach; ?>
tetapi tampaknya hanya the_excerpt
berisi nilai data posting baru, mengapa begitu? Saya menemukan bahwa jika saya menggunakannya echo get_the_permalink($cp)
berfungsi dengan baik. Tapi saya pikir versi yang lebih pendek akan lebih baik
Ganti
dengan
Jadi, Anda perlu menggunakan
$post
variabel yang tepat bersama dengansetup_postdata()
.sumber
setup_postdata()
?Tergantung di mana Anda menggunakan setup_postdata () (jika tidak di loop utama, atau di widget fungsi / sidebar, misalnya), Anda mungkin juga perlu mendeklarasikan -
sumber
global post;
tidak berfungsisetup_postdata($post);
jika Anda ingin menggunakanthe_title()
keluarga perintah dll.Ada di https://codex.wordpress.org/Function_Reference/setup_postdata
Sebaliknya gunakan
... juga pastikan
$post_object
objek WP_Post Anda valid.sumber
Saat meminta posting, gunakan saja loop normal dengan serangkaian argumen yang dilewatkan ke dalamnya. Kemudian setel ulang kueri di akhir.
sumber
setup_postdata()
tampaknya tidak berhasil? Apakah saya salah menggunakannya?$post
alih-alih$cp
memperbaiki masalah.