[WordPress] ワードプレスの the_title();がforeach ループで不正確な値を示す

スポンサーリンク

Question

foreach()

ループで投稿を処理し、その

the_title()

を取得しています。

これが私のコードです:

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

答え

<?php wp_reset_query(); ?>

<?php wp_reset_postdata(); ?>

while ループの終わりに使用しましょう。詳細については以下のリンクを参照できます:

http://codex.wordpress.org/Function_Reference/wp_reset_postdata http://codex.wordpress.org/Function_Reference/wp_reset_query

答え

“the_title()”は「ループ」内でのみ使用できます。コンテキストの外部ではカスタム関数とループが必要です。

http://stackoverflow.com/questions/27315906/wordpress-the-title-showing-incorrect-value-in-foreach-loop

スポンサーリンク

Leave a Reply