1

別のループ (つまり、サイドバーの最近の投稿ループ) で現在読んでいるブログ投稿の投稿 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. ?>

次に、デフォルトウィジェット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 を取得し、2 番目のループで使用する方法はあるのでしょうか。current_post_id2 番目のループでエコーする瞬間、何も表示されません。(現在の投稿の強調表示に関しては、これが機能するようになれば簡単です。

助けてくれてありがとう。

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 に答える