2016-11-15 12 views
0

私は "イベント"と呼ばれるカスタム投稿タイプを持っています。ポストは、WP Queryループがそれらのすべてではなく1つのポストしか表示しない点を除いて、うまく表示されます。ここではイベントのための私のfunctions.phpファイルからの完全なコードは次のとおりです。WordPress投稿タイプの質問でページあたりの投稿を変更できません

function min_get_events ($echo = true) { 
    $events = new WP_query(array(
    'post_type' => 'events', 
    'posts_per_page' => -1, 
    'order' => 'ASC', 
    'orderby' => 'meta_value', 
    'meta_key' => 'min_event-start', 
    'meta_query' => array(
     'key'  => 'min_event-start', 
     'value' => date('Y-m-d'), 
     'compare' => '>', 
    ) 
)); 

$i = 0; 
$n = 1; 

if ($events->have_posts()) : 
    while ($events->have_posts()): 
     global $post; 
     $events->the_post(); 

     $open_date = get_post_meta($post->ID, 'min_event-start', true); 
     $close_date = get_post_meta($post->ID, 'min_event-end', true); 
     $start = strtotime($open_date); 
     $end = strtotime($close_date); 
     if ($start==$end || $start > $end) { 
      $date_string = date('F j, Y', $start); 
     } 
     else { 
      $date_string = date('F j, Y', $start) .' – '. date('F j, Y', $end); 
     } 
     //$description = get_post_meta($post->ID, 'event-description', true); 
     $location = get_post_meta($post->ID, 'min_event-location', true); 
     $url = get_post_meta($post->ID, 'min_event-url', true); 
     //$registration_url = get_post_meta($post->ID, 'event-registration-url', true); 
     $cta_text = get_post_meta($post->ID, 'min_event-cta-text', true); 
     $cta = !empty($cta_text) ? $cta_text : 'Register Now'; 

     $i++; 
     if ($i == 1) { 
      ?> 
      <div class="row"> 
      <?php 
     } 
     ?> 
     <div class="event col-sm-4"> 
      <a href="<?= $url ?>"> 
       <?php the_post_thumbnail('thumb-events'); ?> 
      </a> 
      <h1><?= htmlentities($post->post_title) ?></h1> 
      <div > 
       <div><?= $date_string; ?></div> 
       <div><?= htmlentities($location) ?></div> 
       <div><a href="<?=$url;?>" class="register-now"><?= $cta; ?></a></div> 
      </div> 
      <!-- <p><?= $description ?></p> --> 
      <!-- <p><a href="<?=$url;?>" class="register-now"><?= $cta; ?></a></p> --> 
     </div> <!-- .event --> 
     <?php 


     if ($i == 3 || ($events->current_post +1) == $events->post_count) { 
      ?> 
      </div> <!-- <?php echo $i; ?> .row <?php echo $n; ?> --> 
      <?php 
      $i = 0; 
      $n++; 
     } 

    endwhile; 
endif; 

ob_start(); 
?> 

<?php 
$return = ob_get_contents(); 
ob_end_clean(); 
wp_reset_postdata(); 
if ($echo) { 
    echo $return; 
} else { 
    return $return; 
} 
} 

私はここで何かが足りないのですか?

+0

をあなたは()のカウント($ [イベント] - > [記事) 'のvar_dumpを試してみました。1つの結果だけが本当に存在する場合、'チェックしますか? posts_per_page 999を試しましたか?あなたの基準に合致する投稿が1つ以上あることは確かですか? – Blackbam

+0

私はそれらを試みました、それはまだ1つの投稿を表示します@Blackbam – MikeL5799

答えて

2

あなたのメタクエリは間違っています(この間違いは簡単に起こり、私は一度それを作った)。 'meta_query'を実行している場合は、配列内に配列を作成する必要があります。各配列には1つのメタ引数があります。以下のコードを参照してください:コーデックスの

$events = new WP_query(array(
    'post_type' => 'events', 
    'posts_per_page' => -1, 
    'order' => 'ASC', 
    'orderby' => 'meta_value', 
    'meta_key' => 'min_event-start', 
    'meta_query' => array(array(
     'key'  => 'min_event-start', 
     'value' => date('Y-m-d'), 
     'compare' => '>', 
    )) 
)); 

詳細情報:https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

+0

ありがとう。私はそれをしたが、まだ1つの投稿だけが表示されている – MikeL5799

+0

うーん、それは奇妙なthats。別のメタキーを試してみてください。私は日付のために必要ではないと思うが、タイプ=> '数値'を試してみてください。テーマ/プラグインのアクションとフィルタを確認してください。多分何かが出力をフィルタリングするでしょうか? まだ動作しない場合は、投稿を照会するために$ wpdbを使用してハッキングすることができます。 – Blackbam

関連する問題