wordpress - 具有自定义帖子类型的存档页面上的事件列表
问题描述
我正在使用 Wordpress。我想在自定义帖子类型模板(posttype-archive.php)中显示即将发生的事件。我想将带有 unix 时间戳的自定义字段与当前时间戳进行比较。不知何故,它总是列出来自此特定自定义帖子类型的所有帖子。
<?php
$today = time();
//First Query for Posts matching term1
$args = array(
'post_type' => 'exhibitions',
'relation' => 'AND',
'meta_query' => array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC'
)
);
$query = new WP_Query( $args );
if ( have_posts() ) {
$term = $query->queried_object;
while ( have_posts() ) : the_post(); ?>
<?php ?>
<?php print_r ($args); ?>
<div class="auss_left">
<h2><?php echo rwmb_meta( 'gastgeberin' ); ?><br />
<?php the_title(); ?></h2>
<?php
$date =rwmb_meta( 'Date' );
if (!$date){
echo rwmb_meta( 'start_date' ); ?> - <?php echo rwmb_meta( 'end_date' );
}
?>
<?php if ($date){
echo rwmb_meta( 'Date' );
} ?>
<?php echo rwmb_meta( 'Ort' ); ?>
<?php echo rwmb_meta( 'Adresse' ); ?>
<?php echo rwmb_meta( 'Karte' ); ?>
Öffnungszeiten:<br/>
<?php echo rwmb_meta( 'oeffnungszeiten' ); ?>
Vernissage:<br/>
<?php echo rwmb_meta( 'vernissage' ); ?>
</div>
<div class="auss_right">
<?php the_content(); ?>
</div>
<?php endwhile;
}
//RESET YOUR QUERY VARS
wp_reset_query();
?>
我希望这个 WP 查询只列出即将发生的事件,但它总是列出所有事件。
解决方案
您正在创建自定义 WP_Query,但您没有在任何地方使用它。试试这个:
<?php
$today = time();
//First Query for Posts matching term1
$args = array(
'post_type' => 'exhibitions',
'relation' => 'AND',
'meta_query' => array(
array(
'key' => 'start_date',
'value' => $today,
'compare' => '>=',
'type' => 'NUMERIC',
),
),
);
$events_query = new WP_Query( $args );
if ( $events_query->have_posts() ) :
while ( $events_query->have_posts() ) : $events_query->the_post(); ?>
<div class="auss_left">
<h2>
<?php echo rwmb_meta( 'gastgeberin' ); ?>
<br />
<?php the_title(); ?>
</h2>
<?php
$date = rwmb_meta( 'Date' );
if ( ! $date ) {
echo rwmb_meta( 'start_date' ); ?> - <?php echo rwmb_meta( 'end_date' );
} else {
echo rwmb_meta( 'Date' );
}
echo rwmb_meta( 'Ort' );
echo rwmb_meta( 'Adresse' );
echo rwmb_meta( 'Karte' );
?>
Öffnungszeiten:<br/>
<?php echo rwmb_meta( 'oeffnungszeiten' ); ?>
Vernissage:<br/>
<?php echo rwmb_meta( 'vernissage' ); ?>
</div><!-- /.auss_left -->
<div class="auss_right">
<?php the_content(); ?>
</div><!-- /.auss_right -->
<?php endwhile;
endif;
//RESET YOUR QUERY VARS
wp_reset_postdata();
同样正如@josedasilva 提到的,您应该仔细检查为“start_date”元键存储的值是否为整数。
推荐阅读
- bash - If then else 在 Bash
- python - 为什么会出现递归错误
- c# - C# TCP Socket回调不返回第一个发送消息的字节
- android - Xamarin Forms 发现不同版本的“System.Net.Http”之间存在无法解决的冲突
- javascript - 将 props 传递给子组件 Reactjs
- wordpress - 如何在我的插件页面 wordpress 中以 edit.php 样式显示数据?
- sql - 如何在 UPDATE 语句中使用 regexp_matches()?
- sockets - Golang原始套接字丢失数据包?
- hadoop - 并行运行 oozie 操作的任何其他选项
- javascript - 加快对 TouchableWithoutFeedback 的反应