WP_Query、循环、条件和每页帖子的问题

时间:2015-11-20 作者:unhypeable

我正在创建一个网站,我有自定义类型(插件:Types). 这些自定义类型称为“Veranstaltungen”-->它们是事件。

所有这些活动都有一个开始日期(start-datum ) 以及结束日期(end-datum ) 是自定义字段。

在我的网站主页上,我想显示其中的3个事件。

我已经让循环与我的排序顺序一起工作,我可以使用以下命令将其限制为3:

$loop = new WP_Query( array(                
    \'post_type\'        => \'veranstaltungen\',    
    \'posts_per_page\'   => \'3\',
    \'orderby\'          => \'meta_key\',
    \'order\'            => \'ASC\',
    \'key\'              => \'start-datum\',
) );
过去的事件正在显现出来。

根据自定义字段,接下来的3个事件start-datum 是那些将要出现的人。

我添加了以下if逻辑:

while( $link->have_posts() ) :
    $link->the_post(); 

    if( date( \'m d,Y\',strtotime( "today" ) ) <= types_render_field( \'end-datum\', array( \'format\' => \'m d, Y\' ) ) )
    {
        ...
这是可行的,但循环将“过时的帖子”考虑在内,并将我的posts_per_page.

如果我们想想今天,我过去有两件事,我只会看到一件事。

如何解决此问题?


我试图这样做,而不是有条件的,并试图在循环中排除我的帖子,但没有成功。它只是对我的帖子进行排序并打印所有内容:

$loop = new WP_Query( array(                
    \'post_type\'     => \'veranstaltungen\',   
    \'posts_per_page\'=> \'3\',
    \'orderby\'       => \'meta_key\',
    \'order\'         => \'ASC\',
    \'key\'           => \'end-datum\',
    \'value\'         =>  date( \'F j,Y\',strtotime( "today" ) ),
    \'compare\'       => \'>=\',
    \'type\'          => \'DATE\',              
) );

1 个回复
SO网友:unhypeable

仅供参考。我将插件切换到高级自定义字段,并创建了如下查询。可能是因为我在CustomField中使用了“-”,或者是因为我的日期格式。

$today = date(\'Ymd\');
$args=array(
   \'post_type\' => \'veranstaltungen\',
   \'posts_per_page\' => 3,   
   \'meta_query\' => array(
        array(
       \'key\' =>  \'ende\',
       \'compare\' => \'>=\',
       \'value\' => $today,   
        ),      
    ),  
       \'meta_key\' =>  \'start\',
       \'orderby\' => \'meta_value\',
       \'order\' => \'ASC\',   
);
$loop = new WP_Query($args);            
?>
<?php while ( $loop->have_posts() ) : $loop->the_post();
感谢所有试图提供帮助的人!:)

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp