期間を指定し、該当する記事を表示する

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

カスタムフィールド「event_date」を元にテキストボックスで期間を指定し該当する記事を表示する。これがいいのかどうかわからないけど、とりあえず動作したし、いろいろ調べたのでとりあえずメモっておくことにします。

<form method="POST" action="">
    <input type="text" value="<?php echo attribute_escape($start_date); ?>" name="start_date" id="start_date" /><span>~</span>
    <input type="text" value="<?php echo attribute_escape($end_date); ?>" name="end_date" id="end_date" />
    <input type="submit" value="検索" name="btn">
    </form>
     
    
    <?php
    
    if (isset($_POST["btn"])) {
    
    if (!empty($_REQUEST['start_date'])) {
    $start_date = date('Y-m-d', strtotime($_REQUEST['start_date']));
    }
    
    if (!empty($_REQUEST['end_date'])) {
    $end_date = date('Y-m-d', strtotime($_REQUEST['end_date']));
    }
    
    if(!empty($start_date) && !empty($end_date)) { 
    $args = array(
    'post_type' => 'seminar',
    'meta_query' => array(
    'relation' => 'AND',
    array(
    'key' => 'event_date',
    'value' => array( $start_date, $end_date ),
    'type' => 'date',
    'compare' => 'BETWEEN'
    )
    ),
    'meta_key' => 'event_date', // 開催日
    'orderby' => 'meta_value',
    'order' => 'DESC'//,
    );
    } else {
    $not_input_msg ='入力漏れ'; 
    }
    $query = new WP_Query( $args );
    }//btn
    ?>
    
    <p><?php echo $not_input_msg; ?></p>
    
    <table>
    <tr>
    <th>開催日</th>
    <th>イベント名</th>
    </tr>
    <?php if(!empty($start_date) && !empty($end_date)) : ?>
    <?php while ( $query ->have_posts() ) : $query ->the_post(); ?>
    <tr><td><?php print($post ->event_date); ?></td><td><a href="<?php echo $getURL = the_permalink(); ?>"><?php print($post ->post_title); ?></a></td></tr>
    <?php endwhile; ?>
    <?php endif; wp_reset_query(); ?>
    </table>


  
0%