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 个元键的帖子,但第二个元键我无法让它工作。我的意思是,第一个元键 (start_1) 值是 Jul 04 07:00 PM,第二个元键 (start_2) 值是 Jul 04 10:30 PM。

7 月 4 日 07:00 PM - 电影

7 月 4 日 08:00 PM - 剧院

7 月 4 日 09:00 PM - 运动

7 月 4 日晚上 10:00 - 音乐

7 月 4 日 07:00 PM - 电影

我如何显示同一篇文章的 2 个元键,当然会显示两次。例如,我发了一篇标题为《肖申克的救赎》的帖子。基本上元键是日期和时间

(元键:start_1)7 月 4 日 07:00 PM - 肖申克的救赎

(元键:start_2)7 月 5 日晚上 10:30 - 肖申克的救赎

4

2 回答 2

1

使用 query_posts 或 WP_Query 而不是自定义查询。这样,您可以轻松地在 post id 中发出重复性。参考去: 类参考/WP查询

于 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 回答