【问题标题】:Filter posts by month in ACF custom date picker field在 ACF 自定义日期选择器字段中按月过滤帖子
【发布时间】:2016-01-11 15:08:59
【问题描述】:

我有一个日期选择器 ACF 自定义字段,用户在创建新帖子时选择事件日期。我在一个页面上显示所有帖子,并在此活动日期之前对它们进行排序。我需要的是帖子上方的过滤器选项,您可以在其中选择月份以仅查看该月发生的事件。 这是我的代码:

<?
/*
*  Order Posts based on Date Picker value
*  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP)
*/

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;   
query_posts(array(
    'paged' => $paged,
    'posts_per_page'=>12,
    'meta_key' => 'event_date', // name of custom field
    'orderby' => 'meta_value_num',
    'order' => 'DSC',
    'pagination' => 'true',
    'cat' => '2'
));
?>

    <div class="filter">
        <a>January</a>
        <a>February</a>
        ...etc...
    </div>


<ul>

<?php if ( have_posts() ) : ?>

    <?php while ( have_posts() ) : the_post(); ?>

                <li id="post-<?php the_ID(); ?>">
                    <div>
                        <?php 
                            $date = get_field('event_date');
                            $dateformat = date("F j, Y", strtotime($date));
                        ?>
                        <p class="date"><?php echo $dateformat; ?> </p>
                        <h4><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4>
                    </div>
                </li>


<?php endwhile; ?>
<?php else : ?> 
<?php endif; ?>
</ul>

    <?php wp_reset_query(); ?>

【问题讨论】:

    标签: wordpress filtering advanced-custom-fields


    【解决方案1】:
    add_action( 'pre_get_posts', 'upcoming_events_order'); 
    function upcoming_events_order( $query ) {
    if( $query->is_post_type_archive('event') ) :
        $query->set( 'order', 'ASC' );
        $query->set( 'orderby', 'meta_value' );
        $query->set( 'meta_query', array( array( 'key' => 'event_date', 'value' => date('Ymd'), 'compare' => '>=', 'type' => 'DATE' ) ) );
        $query->set( 'meta_key', 'event_date' );
        $query->set( 'meta_value_num', 'DATE');
    endif;    
    };
    

    【讨论】:

    • 感谢您的回复,我该如何将它变成带有日期的可见链接?我将它放入functions.php并在我的模板文件中调用了一个函数,但它破坏了页面。
    猜你喜欢
    • 2017-05-10
    • 2021-11-30
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2013-02-09
    • 2015-07-14
    • 2018-10-02
    相关资源
    最近更新 更多