Wordpress the_title();在foreach循环中显示不正确的值

时间:2014-12-05 12:28:47

标签: php wordpress

我正在处理foreach()循环中的帖子,但似乎the_title()在整个循环中调用了一个帖子。

例如;它应显示KimNickEvan 但它只显示NickNickNick

这是我的代码:

<?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 -->

3 个答案:

答案 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

这会让你的生活变得轻松。可能是!