获取帖子ID,同时循环输出页面ID

时间:2014-05-13 作者:Anders Kitson

我已经有一段时间没有使用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; ?>

3 个回复
SO网友:aifrim

不使用query_postsWP_Query 如果你在主循环中需要它。永远不要使用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; // end of the loop. ?>
<?php endif; ?>
因为:get_the_ID()

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. 
}

SO网友:certainstrings

将wp\\u query()与参数一起使用。Query\\u帖子会减慢查询速度。http://codex.wordpress.org/Class_Reference/WP_Query

结束

相关推荐

获取帖子上附加的第一张图片的ID

我正在寻找一种解决方案,使我能够获取附加到循环中帖子的第一张图像的ID。我目前正在使用这个;$size = \'post-thumbnail\'; // Define image_size to be used $args = array( \'post_type\' => \'attachment\', \'post_mime_type\' => \'image\', \'post_parent\' =>

获取帖子ID,同时循环输出页面ID - 小码农CODE - 行之有效找到问题解决它

获取帖子ID,同时循环输出页面ID

时间:2014-05-13 作者:Anders Kitson

我已经有一段时间没有使用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; ?>

3 个回复
SO网友:aifrim

不使用query_postsWP_Query 如果你在主循环中需要它。永远不要使用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; // end of the loop. ?>
<?php endif; ?>
因为:get_the_ID()

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. 
}

SO网友:certainstrings

将wp\\u query()与参数一起使用。Query\\u帖子会减慢查询速度。http://codex.wordpress.org/Class_Reference/WP_Query