我已经有一段时间没有使用wordpress了,我正在尝试使用高级自定义字段,我正在尝试在页面上的循环中输出帖子ID,因此我可以使用get\\u字段输出帖子内容。Ths$post->ID给我的是页面ID而不是post ID,所以输出了错误的号码,我如何获得post ID?
<?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; // end of the loop. ?>
<?php endif; ?>
SO网友:s_ha_dum
请不要使用query_posts()
Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。任何现代的WP代码都应该使用更可靠的方法,比如使用pre\\u get\\u posts钩子。
http://codex.wordpress.org/Function_Reference/query_posts
在您的情况下,您正在页面上创建一个二级循环,因此您需要的是一个新的
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
} // end of the loop.
}