2017-10-05 6 views
0

1つのページに複数のカスタム投稿のタイトルとコンテンツを返すことになっているショートコードがあります。各投稿のタイトルが正しく表示されますが、各投稿のコンテンツの表示については、最初の投稿のコンテンツのみが表示されます。私は間違って何をしていますか?do_shortcode withinループは最初の投稿のコンテンツのみを返します

短いコードの中からコンテンツを取得する方法はわかりにくいので、誰かが何か提案があれば、私はそれを感謝します!

私のコードは次のとおりです。

if($customposts->have_posts()) : while ($customposts->have_posts()) : $customposts->the_post(); 
    $post= get_the_ID(); 
    $foo = get_the_title(); 
    $bar=do_shortcode($content); 
    echo "<h2>".$foo."</h2><p>".$bar."</p>";  


endwhile; endif;  
+0

私は$コンテンツがループの外側に設定されていると推測しています。したがって、常に同じ結果が得られます。 – janh

+0

私のショートコード機能では、このループの外側に設定されています。 – bjorkland

+0

'$ content'とは何ですか? – Spartacus

答えて

0

あなたは私たちdo_shortcodeに必要なように見えていません。 titleが正しく機能している場合は、$bar変数にget_the_content()を割り当てることができます。あなたがポストをループしているので

$bar = get_the_content(); 
0

は、ループの各反復からのHTMLを保存し、その後、(覚えて一度HTMLのすべてを返しますが、エコーやショートコールバックから印刷することはできません。.. 。まあ、)あなたがいけない、またはあなたには、いくつかの予期しない結果が得られます。また

$html = ''; 
    if($customposts->have_posts()) : 
     while ($customposts->have_posts()) : $customposts->the_post(); 
     $post= get_the_ID(); 
     $foo = get_the_title(); 
     $bar = get_the_content(); 
     $html .= "<h2>$foo</h2><p>$bar</p>"; 
    endwhile; endif; 

return $html; 

、独自の変数として$postの使用について注意してください、あなたは間違いなく含め、他のスクリプトとの競合に来ますコア。

+0

私はショートコードを使用しています。このループはショートコード機能内にあります。また、ショートコード内でthe_content()を使用すると、致命的なエラーが発生します。 – bjorkland

+0

私はあなたの意図を完全に誤解しました。私は私の答えを編集しました。 – Spartacus

関連する問題