2017-01-25 4 views
0

このコードの機能を拡張して、イベントの終了日と開始時刻を組み込むことができますか?WPDBクエリ - _meta_keyに基づくmeta_valueを返す

<?php 
    global $wpdb; 
    $result = $wpdb->get_results ("SELECT $wpdb->posts.ID, $wpdb->posts.post_content, $wpdb->postmeta.meta_id, $wpdb->postmeta.post_id, $wpdb->postmeta.meta_key, $wpdb->postmeta.meta_value, $wpdb->posts.post_title FROM $wpdb->posts INNER JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id WHERE $wpdb->postmeta.meta_key = '_EventStartDate' ORDER BY $wpdb->postmeta.meta_value "); 


    foreach ($result as $page) { 
    $date = new DateTime($page->meta_value); 

    if (strtotime($page->meta_value) >= strtotime('monday this week') && strtotime($page->meta_value) < strtotime('monday next week')) { 
    echo '<h2><div class="date-title">'; 
    echo $page->post_title; 
    echo '</div><div class="date-date">'; 
    echo $date->format('d-m-Y').'<br/>'; 
    echo '</div></h2>'; 
    } 

    } 
    ?> 

私はその後

WHERE $wpdb->postmeta.meta_key = '_EventStartDate' OR $wpdb->postmeta.meta_key = '_EventEndDate' 

これに

WHERE $wpdb->postmeta.meta_key = '_EventStartDate' 

を変更する別途、これらの値をエコーすることはできません開始日と終了日のメタキーが、イムを返してみました。

基本的に、私は、各イベントの出力この

Event Name starts on (start date here) and finishes on (end date here) 

したいと思います。

希望この質問はより明確ですか?

おかげ

[EDIT]

開始日と終了日のメタキー

は以下のとおりです。

_EventStartDateとwp_postmetaで_EventEndDate両方

おかげ

+0

あなたが達成したいこと、またはどのような出力が必要なのかは疑問です。 –

+0

私は編集します –

+0

今すぐ更新@Raunak Gupta –

答えて

0

あなたがしたい場合はあなたはWP_Queryを使用することができますし、あなたが持っているメタを得るためにカスタムpost_typeの投稿を得るo get_post_meta()を使用します。
はこのようにいくつかのこの操作を行います:

$args = array(
    'post_type' => array('event'), //<-- Replace it with your custom post_type 
    'post_status' => array('publish'), 
    'order' => 'DESC', 
    'orderby' => 'date' 
); 

// The Query 
$query = new WP_Query($args); 
if (!empty($query->posts)) 
{ 
    foreach ($query->posts as $post) 
    { 
     $_EventStartDate = get_post_meta($post->ID, '_EventStartDate', TRUE); 
     $_EventEndDate = get_post_meta($post->ID, '_EventEndDate', TRUE); 
     echo $post->post_title . ' starts on ' . $_EventStartDate . ' and finishes on ' . $_EventEndDate; 
     //... 
    } 
} 

ホープ、このことができます!

+0

ありがとう、これを前に返すとあなたに戻って –

+0

ちょっと、@ Raunak Gupta、しかし、この作品は、wp_queryが将来の日付に限定されているので、のみ。私が必要とする日付範囲をフィルタリングするためにstrtotimeでifステートメントを使用することができる瞬間に設定する方法、上記のような方法でこのようなやり方を達成する方法、または上記のクエリを微調整する方法はありますか? –

+0

@Jonnygogo:赦免できなかった。 「wp_queryは将来の日付に限定されます」とは何ですか? –

関連する問題