我在第一个查询的变量中存储了一个帖子ID,我想用它在第二个查询中突出显示具有相同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; ?>
这篇文章是在我的第二个循环中查询的(与第一个循环无关),只是我不知道如何通过第一个循环中的变量来识别它。
第二个:
<?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; ?>
谢谢。
编辑:Alex的答案加上Chip的更正应该是可行的,但由于一些奇怪的原因,它不可行,所以我发布了我的完整代码,以防有人发现问题。(页面上没有其他查询或任何其他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=“bookmark”标题=”>
<?php endwhile; else : ?>
<?php endif; ?>
</ul>
</div>
</div>
最合适的回答,由SO网友:Alex Lane 整理而成
主循环查询post ID存储在$current
. 此变量等效于$post->ID
. 次级循环查询post 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>