詳細を説明するために、私は11の投稿を持ち、それぞれの投稿には事前のカスタムフィールドフォームに画像を入力します。しかし、私はそれらを呼び出すと、私は11の結果を返しますが、ただ1つの投稿からです。アドバンスカスタムフィールドは同じ値を返し続けます
ここで私が取り組んでいることは次のとおりです。 functiuons.phpにありますので、これを短いコードとして取得したいので、私は複数のポストタイプで使用できます。
function get_slider() {
$args = array(
'post_type' => 'projekti',
'posts_per_page' => -1,
);
$posts = get_posts($args);
ob_start();
if($posts): ?>
<div class="slider_slick">
<?php foreach($posts as $post): setup_postdata($post); ?>
<?php if(have_rows('slider')): ?>
<?php while(have_rows('slider')): the_row(); ?>
<?php // vars
$image = get_sub_field('image_slider');
$link = get_sub_field('slider_link');
?>
<div class="slide">
<a href="<?php echo $link; ?>">
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" />
</a>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
</div>
<?php endif;
return ob_get_clean();
}
add_shortcode ('slick_slider' , 'get_slider');
私が作成したテンプレートにはほとんど同じコードがありますが、それはうまく動作しますが、これはありません。理由はわかりません。
代わりに 'get_posts'を使って' WP_QUERY'を試してみてください。 – Noman
試してみましたが、うまくいきませんでした。提案していただきありがとうございます。 – Mark
あなたは 'スライダー'の行を持っていますか? 'setup_postdata($ post);'の行の後に 'get_fields(get_the_ID());'の出力を追加してください。 – Noman