突出显示最近帖子边栏,wordpress中的当前帖子

时间:2012-10-24 15:46:29

标签: php wordpress

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

在我的单个帖子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. ?>

然后在我的default-widgets 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; ?>

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

感谢您的帮助。

1 个答案:

答案 0 :(得分: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; ?>

告诉我们是否有效。