0

これは私のコードです:

<?php 
$querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
WHERE $wpdb->postmeta.meta_key = 'start_1'
OR $wpdb->postmeta.meta_key = 'start_2'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->postmeta.meta_value ASC
";
$schedulepost = $wpdb->get_results($querystr, OBJECT);
if ($schedulepost):
global $post;
foreach ($schedulepost as $post):
setup_postdata($post);
?>

<?php $start_1 = get_post_meta($post->ID, 'start_1', true); echo $start_1; ?>
<?php the_title(); ?>


<?php endforeach; endif; ?>

表示する同じ投稿の 2 つのメタ キー、「start_1」、「start_2」があります。上記のコードを使用すると、結果は 4 つの投稿になり、メタ値で並べ替えられます。2 つのメタ キーを持っているのは 1 人だけなので、タイトル ムービーの投稿が 2 回表示されますが、2 番目のメタ キーは機能しません。つまり、最初のメタ キー (start_1) の値は Jul 04 07:00 PM で、2 番目のメタ キー (start_2) の値は Jul 04 10:30 PM です。

Jul 04 19:00 - 映画

7 月 4 日 20:00 - シアター

7 月 4 日 21:00 - スポーツ

7 月 4 日 22:00 - 音楽

Jul 04 19:00 - 映画

同じ投稿の 2 つのメタ キーを表示するにはどうすればよいですか。もちろん、投稿が 2 回表示されます。例として、「ショーシャンクの空に」というタイトルの投稿を作成します。基本的にメタキーは日付と時刻です

(メタキー: start_1) Jul 04 07:00 PM - The Shawshank Redemption

(メタキー: start_2) 7 月 5 日午後 10 時 30 分 - ショーシャンクの空に

4

2 に答える 2

1

カスタム クエリの代わりに query_posts または WP_Query を使用します。これにより、投稿IDで重複可能性を簡単に発行できます。参照先: Class Reference/WP Query

于 2015-07-03T06:42:25.497 に答える
1
<?php
    $args = array (
                    'post_type'              =>'post',
                    'post_status'            =>'publish'
                );

    $the_query = new WP_Query( $args );
   while ($the_query->have_posts()): $the_query->the_post(); 
      $start_1 = get_post_meta( get_the_ID(), 'start_1', 'true');
      $start_2 = get_post_meta( get_the_ID(), 'start_2', 'true');
   endwhile;
?>
于 2015-07-03T06:57:13.517 に答える