2016-03-15 59 views
0

當我試圖在同一頁面上顯示不同的自定義帖子和高級自定義字段時,我對理解(我的)PHP正在做什麼存在一些小問題。顯示高級自定義字段的內容

我已將不同的高級自定義字段添加到頁面,並且我嘗試使用該模板顯示自定義帖子。

我使用的是打電話給我的自定義字段整個模板:

<?php 
    $args = array(
    'post_type' => ‘foo’ 
); 

$foo = new WP_Query($args); 
if($foo->have_posts()) { 

while($foo->have_posts()) { 
    $foo->the_post(); 
?> 
    <?php the_content() ?>      
<?php 
    } 
} 
else { 
    // SOME MESSAGE 
} 
?> 

的:

<?php the_field(‘field-name’) ?> 

我的自定義信息通過這樣的循環(圍繞模板的中間位置)被稱爲高級自定義字段的內容在這些循環之上顯示得很好。在循環下方,它只是不顯示。

我不明白爲什麼內容沒有顯示出來。

我認爲它必須處理循環的while或if語句。如果我刪除循環,則會顯示下面任何高級自定義字段的內容。

回答

2

當您使用WP_Query()時,每次循環發佈時都會更改頁面上的默認$post變量。你需要在你的循環之後調用wp_reset_postdata()來重置$post變量,以便它再次對應於當前頁面。您可以在'while'循環後調用該函數 -

<?php 
$args = array(
    'post_type' => ‘foo’ 
); 
$foo = new WP_Query($args); 

if($foo->have_posts()) { 

    while($foo->have_posts()) { $foo->the_post(); 

     the_content();      

    } wp_reset_postdata(); 
} 
else { 
    // SOME MESSAGE 
} 
?> 
+0

非常感謝!這就說得通了! –

相關問題