最初のクエリの変数に投稿IDが格納されています。これを使用して、2番目のクエリで同じIDを持つ投稿を強調表示したいのですが、うまくいきません。
最初のループ
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php foreach(get_field('relationship') as $post_object): ?>
<?php $current = get_the_ID($post_object->ID); ?>
<?php echo $current; ?>
<a href="<?php echo get_permalink($post_object->ID); ?>"><?php echo get_the_title($post_object->ID) ?></a>
<?php endforeach; ?>
<?php the_content();?>
<?php endwhile; else: ?>
<?php endif; ?>
投稿は私の2番目のループで問い合わせられます(最初のものとは関係ありません)、最初のループからの変数によってそれを識別する方法が私にはわかりません。
第二:
<?php $news_arg=array(
'post_type' => array ('books'),
'post_status' => array( 'publish'),
'posts_per_page' => 20,
);
$arg_query = new WP_Query();
$arg_query->query( $arg );
?>
<?php if( $arg_query->have_posts() ) : ?>
<?php while( $arg_query->have_posts() ) : $arg_query->the_post(); ?>
<?php print_r($arg_query) ?>
<li>
<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
ありがとう。
編集:チップの修正とアレックスの答えはうまくいくはずですが、いくつかの奇妙な理由のためそれがしないので、誰かが問題を発見した場合に備えて私は私のフルコードを投稿します。 (ページ上に他のクエリや他のPHPはありません):
編集:replaced get_the_ID
とget_permalink
、そして今それは動作します:
<div class="span8 single_c">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post-header">
<h2 class="verseny">
<a href="<?php echo get_permalink($post_object->ID); ?>"><?php echo get_the_title($post_object->ID) ?></a>
</h2>
</div>
<?php foreach(get_field('relation') as $post_object): ?>
<?php $current = get_permalink($post_object->ID); ?>
<?php endforeach; ?>
<div class="well single_p">
<?php echo $current ?>
<?php if(get_field('lead')) {
echo '<p><strong>' . get_field('lead') . '</strong></p>';
} else { } ?>
<?php the_content();?>
<?php endwhile; else: ?>
<?php endif; ?>
</div>
</div>
<div class="span4 single_c">
<div class="well db">
<ul class="nav nav-list">
<?php $arg=array(
'post_type' => array ('books'),
'post_status' => array( 'publish'),
'posts_per_page' => 10
);
$arg_query = new WP_Query();
$arg_query->query( $arg );
?>
<?php if( $arg_query->have_posts() ) : ?>
<?php while( $arg_query->have_posts() ) : $arg_query->the_post(); ?>
> "rel ="ブックマーク "title =" ">
<?php endwhile; else : ?>
<?php endif; ?>
</ul>
</div>
</div>
プライマリループクエリの投稿IDは$current
に格納されています。この変数は$post->ID
と同等です。二次ループのクエリ投稿IDは ループ内 $post->ID
として利用可能です。したがって、二次ループの中に単純なif
ステートメントが必要です。
<?php
if ( $current == $post->ID ) {
// This post is the same as the
// primary loop's current post;
// do something
}
?>
たとえば、 "current-article"クラスを追加するには、<li>
で次のことを試してみます。
<li<?php if ($post->ID == $current) echo 'class="current-article"'; ?>><!-- stuff here --></li>