我目前正在尝试在专用的事件搜索页面模板上创建自定义搜索过滤器。
为此,我创建了日期选择器的自定义字段(没有 ACF 插件)。
我知道如何检索字段的值,但我不知道如何将它们与允许按日期间隔显示事件文章的搜索表单一起使用(例如:仅显示来自的事件文章: 15 / 01/2021 至 21/02/2021,以列表形式)。
我使用搜索表单(参见附件)创建了一个 search-events.php 页面模板(参见下面的代码)。
<section id="primary" class="content-area col-md-12">
<main id="main" class="site-main" role="main">
<header class="entry-header">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
</header>
<div class="search_form">
<form method="post" action="<?php bloginfo('url');?>/myevents/">
<?php $start_end_event = get_post_meta( get_the_ID(), 'start_of_date-de-fin', true );
$start_end_event .= get_post_meta( get_the_ID(), 'end_of_date-de-fin', true );
foreach($start_end_event as $metasearch){
echo buildSelect($metasearch);
}
?>
<input type="submit"/>
</form>
</div>
<?php
if (get_query_var('paged')) {
$paged = get_query_var('paged');
} elseif (get_query_var('page')) { // 'page' is used instead of 'paged' on Static Front Page
$paged = get_query_var('page');
} else {
$paged = 1;
}
$args = array(
// Arguments for your query.
'post_type' => 'myevents',
'numberposts' => -1,
'post_status' => null,
'post_parent' => null,
'posts_per_page' => 10,
'paged' => $paged, //very important
'order_by' => 'date',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'start_of_date-de-debut',
'value' => $start_meta_date,
'type' => 'date',
'compare' => '>=',
),
array(
'key' => 'end_of_date-de-fin',
'value' => $end_meta_date,
'type' => 'date',
'compare' => '<=',
),
),
);
$custom_query = new WP_Query($args);
if ($custom_query->have_posts()) :
while ($custom_query->have_posts()) : $custom_query->the_post();
?>
<div class="post_wrap">
<figure class="post_thumb">
<?php the_post_thumbnail('large'); ?>
</figure>
<div class="post_content">
<a href="<?php echo get_permalink($post->ID);?>" >
<h1>
<a href="<?php the_permalink() ?>"><?php echo wp_trim_words( get_the_title(), 10 ); ?></a>
</h1>
</a>
<p class="excerpt_post">
<?php echo excerpt(40); ?><a href="<?php echo get_permalink($post->ID);?>" ><strong>lire la suite</strong></a>
</p>
</div>
</div>
<?php endwhile; ?>