我在Wordpress中为自定义帖子类型创建了一个存档页面。如果某些字段匹配,我想输出数据。
在第一个if语句中,我想查看用户已注册的产品(在$product
内保留,并将其与当前项目自定义字段(在$title
内保存)匹配。
它正在做的就是查看用户注册的内容然后输出内容(这是<?php if($match == "yes"){ ?>
下面的所有数据。
我遇到的问题是wp_reset_postdata()
正在查杀$match
内的数据。有没有解决的办法?如果我不包括设置发布数据并且不包括重置,则页面的其余部分不会显示正确的信息。
我正在使用高级自定义字段关系字段(http://www.advancedcustomfields.com/resources/field-types/relationship/)。
非常感谢任何帮助。
User signed up as: <?php $current_user = wp_get_current_user();
$board = $current_user->work;
$product = $current_user->product;
echo $product; ?>
<br />
<?php while (have_posts()) : the_post(); ?>
<?php $products = get_field('product');
if( $products ):
foreach( $products as $post): // variable must be called $post (IMPORTANT)
setup_postdata($post);
$title = $post->post_title;
echo $title;
if($product == $title) {
$match = "yes";
}
endforeach;
wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly
endif; ?>
<?php if($match == "yes"){ ?>
<div id="module-area" style="margin-top:0px!IMPORTANT;">
<div id="modules-top"></div>
<div id="modules-repeat" style="position:relative;padding-left:10px;padding-right:10px;width:625px!IMPORTANT;">
<div class="topic">
<p><?php the_title(); ?></p>
</div>
<div class="description">
<p><?php the_field('description') ?></p>
</div>
<div class="date">
<p style="text-align:center!IMPORTANT;"><?php the_modified_time('d.m.y'); ?></p>
</div>
<div class="action">
<a class="train-button" href="<?php echo the_permalink(); ?>"></a>
</div>
<div class="clear"></div>
</div>
<div style="margin-bottom:5px;" id="modules-bottom"></div>
</div>
<?php } ?>
<?php endwhile; ?>
答案 0 :(得分:1)
User signed up as: <?php $current_user = wp_get_current_user();
$board = $current_user->work;
$product = $current_user->product;
?>
<?php $products = get_field('product');
if( $products ):
foreach( $products as $post): // variable must be called $post (IMPORTANT)
setup_postdata($post);
$title = $post->post_title;
if($product == $title) {
wp_reset_postdata(); ?>
<div id="module-area" style="margin-top:0px!IMPORTANT;">
<div id="modules-top"></div>
<div id="modules-repeat" style="position:relative;padding-left:10px;padding-right:10px;width:625px!IMPORTANT;">
<div class="topic">
<p><?php the_title(); ?></p>
</div>
<div class="description">
<p><?php the_field('description') ?></p>
</div>
<div class="date">
<p style="text-align:center!IMPORTANT;"><?php the_modified_time('d.m.y'); ?></p>
</div>
<div class="action">
<a class="train-button" href="<?php echo the_permalink(); ?>"></a>
</div>
<div class="clear"></div>
</div>
<div style="margin-bottom:5px;" id="modules-bottom"></div>
</div>
<?php
}
endforeach;
endif; ?>
wp_reset_postdata();