2016-08-31 22 views
0

高度なカスタムフィールドで表示される投稿のみを表示するようにループを作成しました。true/falseがyesの場合は投稿を表示します。高度なカスタムフィールド

しかし、今は1つの投稿を表示したいだけです。真実/偽のフィールドを持っている投稿のうちの1つをループするだけのようです。

「posts_per_page」=>「1」

それだけで、最新のポストを示してそのがチェックされていない場合、それはただのブランクを示している。..動作しません。

<?php 
$args = array(
    'post_type' => 'event' 
    ); 
$the_query = new WP_Query($args); 
?> 

     <?php if (have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 


       <?php if ('yes' == get_field('sponsored_event')): ?> 


        <div class="sponsored-event"> 
         <div class="sponsored-image" style="background-image: url(<?php the_field('event_image'); ?>);"> 
         </div> 
         <div class="sponsored-info"> 
          <h2>Sponsored Event</h2> 
          <h1><strong><?php the_title(); ?></strong></h1> 
          <p><strong>Date</strong></p><br> 
          <p class="place"><?php the_field('event_location'); ?></p> 
          <p class="time"><?php the_field('event_time'); ?></p> 
          <p><?php the_field('excerpt'); ?></p> 
         </div> 
        </div> 


       <?php endif; ?> 


     <?php endwhile; else: ?> 

    <?php endif; ?> 


<?php wp_reset_query(); ?> 
+0

以下の答えで返信します。これを実装し、考えを共有する。同様にここに答えを加えました。 http://stackoverflow.com/questions/39276798/show-most-recent-post-if-yes-chosen-as-radio-button-value –

答えて

0

[はい/いいえ]フィールドは、他の方法で操作します。 Outputを取得し、必要な値と比較する必要があります。

構文:

$variable = get_field('field_name', $post->ID); 

$ポスト> IDは、使用ループからapperingされます。

if (get_field('sponsored_event') == 'yes') { 
    // code to run if the above is true 
} 
else 
{ 
    // code for else part 
} 

はあなたがクエリでmeta_valueを使用するためこれはオプションであるの文

場合に与えるようにラジオボタンのためのDBに保存された値であることを確認してください。あなたが使用dod't場合は、あなたがされている最新のものにすることを唯一つのポストが必要な場合はWp_Query

変更するには、このようなWp_Queryのループから取得ポストIDの助けを借りて、ACFの値を取得することができます保存される。

$args = array('post_type' => 'event', 'posts_per_page' => 1,'order'=>'DESC','orderby'=>'ID','meta_key'=> 'sponsored_event','meta_value'=>'yes'); 

これ以外の方法で保存した投稿をすべて削除したい場合は、

$args = array('post_type' => 'event', 'posts_per_page' => -1,'order'=>'DESC','orderby'=>'ID','meta_key'=> 'sponsored_event','meta_value'=>'yes'); 

注:

post_per_page = 10 - > = -1あなたのポストタイプから

post_per_pageを10件の記事を持って来る - >あなたのポストタイプが

を持っている無限の記事をもたらします

ループ全体:

<?php 
$args = array(
    'posts_per_page' => 1, 
    'post_type'  => 'event', 
    'meta_key'  => 'sponsored_event', 
    'meta_value' => 'yes' 
); 
$the_query = new WP_Query($args); 
?> 
     <?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 
        <div class="sponsored-event"> 
         <div class="sponsored-image" style="background-image: url(<?php the_field('event_image'); ?>);"> 
         </div> 
         <div class="sponsored-info"> 
          <h2>Sponsored Event</h2> 
          <h1><strong><?php the_title(); ?></strong></h1> 
          <p><strong>Date</strong></p><br> 
          <p class="place"><?php the_field('event_location'); ?></p> 
          <p class="time"><?php the_field('event_time'); ?></p> 
          <p><?php the_field('excerpt'); ?></p> 
         </div> 
        </div> 
     <?php endwhile; else: ?> 
    <?php endif; ?> 
<?php wp_reset_query(); ?> 

クエリのIf文が正しくないと思われ、クエリ実行出力をそのif文に追加しました。

+0

こんにちはNaresh。私はquoteデバイス( '>')を削除するために以前の投稿に対していくつかの編集を行いました。これは引用や、マニュアル、エラーメッセージ、スピーチなどの別のソースからのものに限られます。一般的な蛍光ペンではなく、そのまま使用すると混乱します。ありがとう! – halfer

+0

ありがとうございます: 私は新しいループを使用しようとしましたが、それは動作しません。 ループ全体を見せてくれますか? リー – lbollu

0

ここでメタクエリを使用してください。 args配列を次のように変更してください:

// args 
$args = array(
    'numberposts' => 1, 
    'post_type'  => 'event', 
    'posts_per_page' => '1' 
    'meta_key'  => 'sponsored_event', 
    'meta_value' => 'yes' 
); 
関連する問題