1

我只是想知道如何在另一个循环中获取我当前正在阅读的博客文章的帖子 ID(即侧边栏中的最近帖子循环)

在我的单个 post php 文件中,我有此代码创建一个变量

<?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( 'content', 'single' ); ?>
                <?php $current_post_id = get_the_ID(); ?> 


            <?php endwhile; // end of the loop. ?>

然后在我的默认小部件 php 文件中,在最近的帖子的循环中,我有这个......

<?php  while ($r->have_posts()) : $r->the_post(); ?>
    <?php $recent_post_id = get_the_ID(); ?>

    <li> <?php echo $recent_post_id; if ( $recent_post_id == $current_post_id ) { echo 'pass   '; } else { echo 'fail   ';} ?></li>
    <?php endwhile; ?>

它每次都失败,所以很明显我在做什么没有意义(我还在学习)。我只是想知道有没有办法从第一个循环中获取帖子 ID,并在第二个循环中使用它。当我current_post_id在第二个循环中回显时,什么都没有出现。(关于突出显示当前帖子,一旦我开始工作,这将很容易。

谢谢您的帮助。

4

1 回答 1

1

网上有很多关于如何在循环之外获取 ID 的示例。

在小部件代码中试试这个:

    <?php  


    global $post;
    $current_post_id = $post->ID;


while ($r->have_posts()) : $r->the_post(); ?>


        <li> <?php echo $recent_post_id; if ( $recent_post_id == $current_post_id ) { echo 'pass   '; } else { echo 'fail   ';} ?><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
        <?php endwhile; ?>

让我们知道它是否有效。

于 2012-10-24T15:53:43.477 回答