サポート » プラグイン » Advanced Custom Fieldsのラジオボタンについて

  • 解決済 oui914

    (@oui914)


    投稿時にカスタムフィールドで
    1を選択した場合は、トップページの.pick1の箇所に
    2を選択した場合は、トップページの.pick2の箇所に・・・
    と、計5箇所にその投稿の画像(フィールド名:img1)を表示させたいのですがうまくいきません。

    【Advanced Custom Fieldsの設定】
    フィールド名:pickup
    フィールドタイプ:ラジオボタン
    選択肢:
    0 : 非表示
    1 : 1
    2 : 2
    3 : 3
    4 : 4
    5 : 5

    【トップページのソース】

    <?php get_header(); ?>
    <div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">
    <div class="pick_box">
    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php $pickup = get_field('pickup',$post->ID); ?>
    <?php if ( is_array( $pickup ) && in_array('1', $pickup ) ) : ?>
    <div class="pick1"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( is_array( $pickup ) && in_array('2', $pickup ) ) : ?>
    <div class="pick2"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( is_array( $pickup ) && in_array('3', $pickup ) ) : ?>
    <div class="pick3"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( is_array( $pickup ) && in_array('4', $pickup ) ) : ?>
    <div class="pick4"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( is_array( $pickup ) && in_array('5', $pickup ) ) : ?>
    <div class="pick5"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php endwhile; ?>
    <?php endif; ?>
    </div>
    </div><!-- #content -->
    </div><!-- #primary -->
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    フィールドタイプをチェックボックスにすると表示されるのですが、
    複数選択できないよう、ラジオボタンで表示させたいと思っています。

    phpの知識がないため、プラグインの設定等ではなく、
    コードの書き方がまずいのではと思っているのですが、
    一日中調べ続けても解決できませんでした。

    どなたか大変お手数ですが、解決方法をご指導を頂きたくお願い申し上げます。

    Advanced Custom Fields:バージョン 4.2.2
    WordPress:3.6.1
    テーマ:Twenty Thirteen
    他使用プラグイン:Revision Controlバージョン 2.3、WP Custom Searchバージョン 0.3.24

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • ラジオボタンの場合は、確か値がそのまま入っているはずなので、
    if ( ‘1’ == $pickup ) とかでいけると思います。(当方で未検証)

    個人的には、配置までカスタムフィールドで設定したいなら、
    柔軟コンテンツアドオンを使いますけど。

    トピック投稿者 oui914

    (@oui914)

    Fumito MIZUNO様。

    ご回答ありがとうございます。
    また柔軟コンテンツアドオン、検討致します。

    以下のように修正したところ表示されるようになりました。

    <div class="pick_box">
    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php $pickup = get_field('pickup',$post->ID); ?>
    <?php if ( '1' == $pickup ) : ?>
    <div class="pick1"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( '2' == $pickup ) : ?>
    <div class="pick2"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( '3' == $pickup ) : ?>
    <div class="pick3"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( '4' == $pickup ) : ?>
    <div class="pick4"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php if ( '5' == $pickup ) : ?>
    <div class="pick5"><a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php the_field("img1", $post->ID); ?>" width="200" alt="<?php the_title(); ?>"></a></div>
    <?php endif; ?>
    <?php endwhile; ?>
    <?php endif; ?>
    </div>

    ただ、この<div class=”pick_box”>の上に、
    カテゴリid4の最新投稿を3件表示させる為に以下コードを入れたところ、
    また表示されなくなってしまいました。

    <div class="news_box">
    <?php if (is_home()) query_posts('cat=4&showposts=3'); ?>
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <?php the_post_thumbnail('thumbnail'); ?>
    <h2><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></h2>
    <p><?php the_time('Y年n月j日'); ?></p>
    <?php the_content(); ?>
    <?php endwhile; else: ?>
    <?php endif; ?>
    </div>

    私の修正の仕方がまずいのでしょうか。

    何度も申し訳ありませんがご指摘頂ければありがたく存じます。
    何卒宜しくお願いします。

    タイトルの質問は解決したようなので、トピックを「解決済み」にしてもらえますか。

    別の質問は、別のスレッドを立ててください。
    そうしないと、後から検索して適切な情報を見つけるのが大変になってしまいます。

    トピック投稿者 oui914

    (@oui914)

    すみません。
    別のスレッドを立てて質問させて頂きます。

    Fumito MIZUNO様。
    ご親切にご対応ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「Advanced Custom Fieldsのラジオボタンについて」には新たに返信することはできません。