首页 > 解决方案 > WordPress,setup_postdata 创建意外结果(跳过每秒输入)

问题描述

我在 WordPress 上使用 ACF,只是试图提取基本上是自定义博客文章以用作信息卡。该设置允许我使用自定义字段从所有博客文章的列表中选择博客文章(最多 4 个)。这是我的代码

<?php
$post_object = get_field('resource_one');
$post = $post_object;
setup_postdata( $post );
echo '<a href="' ;
echo get_the_permalink( $post_object ) ;
echo '">' ;
echo '<div class="resource-box">' ;
echo get_the_post_thumbnail( $post_object );
echo '<div id="resource-category-confirmation">' ;
echo the_field('resource_category');
echo '</div>' ;
echo '<p>' ;
echo get_the_title( $post_object );
echo '</p>' ;
echo '</div>' ;
echo '</a>' ;

$post_object = get_field('resource_two');
$post = get_field('resource_two');
setup_postdata( $post );
echo '<a href="' ;
echo get_the_permalink( $post_object ) ;
echo '">' ;
echo '<div class="resource-box">' ;
echo get_the_post_thumbnail( $post_object );
echo '<div id="resource-category-confirmation">' ;
echo the_field('resource_category');
echo '</div>' ;
echo '<p>' ;
echo get_the_title( $post_object );
echo '</p>' ;
echo '</div>' ;
echo '</a>'  ?>

<?php
$post_object = get_field('resource_three');
$post = $post_object;
setup_postdata( $post );
echo '<a href="' ;
echo get_the_permalink( $post_object ) ;
echo '">' ;
echo '<div class="resource-box">' ;
echo get_the_post_thumbnail( $post_object );
echo '<div id="resource-category-confirmation">' ;
echo the_field('resource_category');
echo '</div>' ;
echo '<p>' ;
echo get_the_title( $post_object );
echo '</p>' ;
echo '</div>' ;
echo '</a>'  
?>

<?php
$post_object = get_field('resource_four');
$post = $post_object;
setup_postdata( $post );
echo '<a href="' ;
echo get_the_permalink( $post_object ) ;
echo '">' ;
echo '<div class="resource-box">' ;
echo get_the_post_thumbnail( $post_object );
echo '<div id="resource-category-confirmation">' ;
echo the_field('resource_category');
echo '</div>' ;
echo '<p>' ;
echo get_the_title( $post_object );
echo '</p>' ;
echo '</div>' ;
echo '</a>'  ?>

由于某种原因,第一个和第三个加载完全正常,第二个和第四个不会提取任何信息,我目前什至将它们都设置为同一个博客文章,只有第一个和第三个会加载。无论我添加多少,总是偶数不加载数据,奇数加载。我确定解决方案相当简单,我只是想念它。有人有想法么?

标签: phpwordpresspostadvanced-custom-fields

解决方案


解决了这个问题。我需要添加

if ( $post ) :

在顶部和

wp_reset_postdata();
endif;

在每次通话的底部。


推荐阅读