我正在处理foreach()
循环中的帖子,但似乎the_title()
在整个循环中调用了一个帖子。
例如;它应显示Kim
,Nick
和Evan
但它只显示Nick
,Nick
和Nick
。
这是我的代码:
<?php get_header();?>
<?php
/**
* Template Name: Team Members
*/
the_post();
// Get 'team' posts
$team_posts = get_posts( array(
'post_type' => 'members',
'posts_per_page' => -1, // Unlimited posts
'orderby' => 'title', // Order alphabetically by name
) );
/* On going work to reorganize the member part */
$web = array();
$cloud = array();
$prof = array();
foreach ($team_posts as $post) {
setup_postdata($post);
if ( get_field('group') == '1')
{
array_push($web, $post);
} elseif ( get_field('group') == '2'){
array_push($cloud, $post);
} else {
array_push($prof, $post);
}
}
function display($array){
foreach ( $array as $post ):
setup_postdata($post);
$thumb_src = null;
if ( has_post_thumbnail($post->ID) ) {
$src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'team-thumb' );
$thumb_src = $src[0];
}
?>
<article class="col-sm-6 profile">
<div class="profile-header">
<?php if ( $thumb_src ) { ?>
<img src="<?php echo $thumb_src; ?>" alt="<?php the_title(); ?>, <?php the_field('position'); ?>" class="img-circle">
<?php } else { ?>
<img src="http://static2.bigstockphoto.com/thumbs/6/9/3/small2/3969472.jpg" alt="No Image" class="img-circle">
<?php } ?>
</div>
<div class="profile-content">
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php //if( $email = get_field('email')): ?>
<a href="mailto:<?php echo antispambot( get_field('email') ); ?>"><img src=<?php echo get_stylesheet_directory_uri() . '/assets/glyphs/email.png'?>></a>
<?php //endif; ?>
</div>
</article><!-- /.profile -->
<?php endforeach;
}
if ( $team_posts ):
?>
<section class="row profiles">
<div class="intro">
<p class ="lead">
"Meet the individuals behind UWB CSS/Bio"
</p>
</div>
<h2>Professor</h2>
<?php display($prof); ?>
<h2>Cloud Computing Group</h2>
<?php display($cloud); ?>
<h2>Web Group</h2>
<?php display($web); ?>
</section><!-- /.row -->
答案 0 :(得分:1)
&#34; the_title()&#34;只能在&#34; The Loop&#34;内使用。使用自定义函数和循环,您不在上下文中。
你应该尝试使用&#34; get_the_title($ ID);&#34;通过将帖子的ID解析为变量,您将获得标题。
答案 1 :(得分:0)
在foreach循环之前使用wp_reset_query
答案 2 :(得分:0)
在while循环结束时使用<?php wp_reset_query(); ?>
和<?php wp_reset_postdata(); ?>
。
有关详细信息,请参阅以下链接:
http://codex.wordpress.org/Function_Reference/wp_reset_postdata http://codex.wordpress.org/Function_Reference/wp_reset_query
这会让你的生活变得轻松。可能是!