使查询中的wordpress帖子过期-而不是循环

使查询中的wordpress帖子过期-而不是循环,wordpress,Wordpress,我目前正在使用以下代码在循环中自定义字段“日期”后过期并隐藏帖子(这很好): 我想过滤掉查询中的帖子——这可能吗。我有一个插件,可以根据查询结果而不是循环生成谷歌地图——有人有什么想法吗?这是我目前的问题 <?php query_posts($query_string.'&order=asc&orderby=meta_value&meta_key=date'); if (have_posts()) : ?> 我忘了提到,生成的帖子也应该按最接近现在的

我目前正在使用以下代码在循环中自定义字段“日期”后过期并隐藏帖子(这很好):


我想过滤掉查询中的帖子——这可能吗。我有一个插件,可以根据查询结果而不是循环生成谷歌地图——有人有什么想法吗?这是我目前的问题

<?php query_posts($query_string.'&order=asc&orderby=meta_value&meta_key=date');
if (have_posts()) : ?>

我忘了提到,生成的帖子也应该按最接近现在的日期显示的相同日期字段排序。

试试这个:

<?php

 $querystr = "
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
    WHERE wposts.ID = wpostmeta.post_id 
    AND wpostmeta.meta_key = 'date' 
    AND wpostmeta.meta_value < CURRENT_DATE
    AND wposts.post_status = 'publish' 
    AND wposts.post_type = 'post' 
    ORDER BY wposts.post_date DESC, wpostmeta.meta_value DESC
 ";

 $pageposts = $wpdb->get_results($querystr, OBJECT);

 ?>

@Sterex非常令人沮丧,我还不能对你的答案发表评论!!不管怎样-我现在很忙-不管怎样我的工作键盘。。。但首先想到的是:1)这会正确地将查询推送到插件中吗?基本上,我在页面上使用mappress插件-它从页面中提取查询,您可以放置一些自定义元素,但我可以看到的过滤过期帖子的唯一方法是在查询级别进行过滤2)我可以使用它加载整个页面,包括自定义字段-而不仅仅是标题吗?谢谢你的帮助!1.要将查询推入插件,您可以将主题页面中的wordpress循环替换为您自己的,如我的回答中所述。你也可以在职位级别这样做。对于每个帖子,检查过期日期,如果该帖子过期,则跳过显示该帖子。虽然这看起来很容易,但很麻烦,你无法控制帖子的顺序。2.哦,是的。我只是举个例子。您可以使用它加载所有帖子详细信息。:-)@好的,我应该补充一点,按日期字段按时间倒序排列的帖子是不重要的!!!这是一个事件页面。我的错误我应该把它放在原始问题中,然后,简单地从下面代码中的
ORDER BY
中删除
wpostmeta.meta_value DESC
。这样,您的帖子将按与发布日期相反的时间顺序被检索,它将得到过期日期小于当前日期的帖子。
<?php

 $querystr = "
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
    WHERE wposts.ID = wpostmeta.post_id 
    AND wpostmeta.meta_key = 'date' 
    AND wpostmeta.meta_value < CURRENT_DATE
    AND wposts.post_status = 'publish' 
    AND wposts.post_type = 'post' 
    ORDER BY wposts.post_date DESC, wpostmeta.meta_value DESC
 ";

 $pageposts = $wpdb->get_results($querystr, OBJECT);

 ?>
 <?php if ($pageposts): ?>
 <?php global $post; ?>
 <?php foreach ($pageposts as $post): ?>
 <?php setup_postdata($post); ?>
 <h2><?php echo $post->title; ?></h2>
 <?php endif; ?>