按日期显示自定义字段

时间:2013-01-07 作者:Tristan Bacon

我不确定这是一个与高级自定义字段相关的问题,还是一个普通PHP问题,因此我也将其发布到ACF support forum, 对于那些也在寻求类似帮助的人

我目前正在一个本地目录网站上工作,专门关注it夜生活。我有一个夜总会自定义帖子类型,有许多ACF供电的字段,包括每晚的活动。到目前为止,活动的结构为周一海报图片、标题。星期二-海报图片、标题等

我只想在头版上显示今晚出现的事件,但很难将查询范围缩小到今天出现的条目。以下是我到目前为止所做的查询:

<div id="home-featuredevent">
        <h2>On Tonight</h2>
        <?php $date = date(\'l\' ); ?>
        <?php $args = array( \'post_type\'  => \'nightclub\' , \'posts_per_page\'  => 10, \'key\'  => \'event_$date\' , \'value\'  => \'\' , \'compare\'  => \'!=\'   );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();
        ?>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <a href="<?php the_field(\'event_$date\' ); ?>"><?php the_field(\'event_$date_desc\' ); ?></a>
目前,只显示场馆名称和链接。现在,我很确定我的变量调用有误,我担心“the\\u field(\'xyz\')的结构会使它变得更复杂。我仍然是从PHP开始的,所以很有可能我刚刚写了糟糕的代码!

任何帮助都会很好,

特里斯坦

1 个回复
SO网友:Wyck

我不知道你为什么要在通常只查询meta_key 有一天,也许我误解了这个问题。

结构类似于:

  meta_key => day // or $variable
  meta_value => Monday //for example
然后,您只需查询某一天的帖子,其中有一个匹配的元字段值。

例如,使用pre_get_posts 将主查询更改为仅获取值等于实际日期的帖子。

function wpse_78591_date( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {

        $today = date("l");

        $query->set(\'meta_key\', \'day\');
        $query->set(\'meta_value\', $today );
    }
}
add_action( \'pre_get_posts\', \'wpse_78591_date\', 9999 );
或者在您的示例中,它将是:

$args = array( \'post_type\'  => \'nightclub\' , \'posts_per_page\'  => 10, \'key\'  => \'day\' , \'value\'  => $today );
在我的示例中,我已硬编码\'key\' => \'day\' 但可以使用变量。

结束

相关推荐

仅隐藏/显示wp-admin new-post.php中的特定类别

谁能给我一个函数或一个方法的想法,我需要使用它从wp admin的选择框中隐藏类别?我有一个自定义的帖子类型,我希望我的作者在编辑帖子时只能在其中的5个类别中进行选择。我想这只是与自定义职位类型的情况,而不是常规职位。

按日期显示自定义字段 - 小码农CODE - 行之有效找到问题解决它

按日期显示自定义字段

时间:2013-01-07 作者:Tristan Bacon

我不确定这是一个与高级自定义字段相关的问题,还是一个普通PHP问题,因此我也将其发布到ACF support forum, 对于那些也在寻求类似帮助的人

我目前正在一个本地目录网站上工作,专门关注it夜生活。我有一个夜总会自定义帖子类型,有许多ACF供电的字段,包括每晚的活动。到目前为止,活动的结构为周一海报图片、标题。星期二-海报图片、标题等

我只想在头版上显示今晚出现的事件,但很难将查询范围缩小到今天出现的条目。以下是我到目前为止所做的查询:

<div id="home-featuredevent">
        <h2>On Tonight</h2>
        <?php $date = date(\'l\' ); ?>
        <?php $args = array( \'post_type\'  => \'nightclub\' , \'posts_per_page\'  => 10, \'key\'  => \'event_$date\' , \'value\'  => \'\' , \'compare\'  => \'!=\'   );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();
        ?>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <a href="<?php the_field(\'event_$date\' ); ?>"><?php the_field(\'event_$date_desc\' ); ?></a>
目前,只显示场馆名称和链接。现在,我很确定我的变量调用有误,我担心“the\\u field(\'xyz\')的结构会使它变得更复杂。我仍然是从PHP开始的,所以很有可能我刚刚写了糟糕的代码!

任何帮助都会很好,

特里斯坦

1 个回复
SO网友:Wyck

我不知道你为什么要在通常只查询meta_key 有一天,也许我误解了这个问题。

结构类似于:

  meta_key => day // or $variable
  meta_value => Monday //for example
然后,您只需查询某一天的帖子,其中有一个匹配的元字段值。

例如,使用pre_get_posts 将主查询更改为仅获取值等于实际日期的帖子。

function wpse_78591_date( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {

        $today = date("l");

        $query->set(\'meta_key\', \'day\');
        $query->set(\'meta_value\', $today );
    }
}
add_action( \'pre_get_posts\', \'wpse_78591_date\', 9999 );
或者在您的示例中,它将是:

$args = array( \'post_type\'  => \'nightclub\' , \'posts_per_page\'  => 10, \'key\'  => \'day\' , \'value\'  => $today );
在我的示例中,我已硬编码\'key\' => \'day\' 但可以使用变量。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请