我正在为本地表演艺术场地设计一个网站,我想添加一些代码,以便“活动”页面上的特定活动帖子将自动从“活动”移动到不同的“过去表演”事件日期过后的页面。我已经四处寻找此查询的任何现有解决方案,但尚未找到。
答案 0 :(得分:1)
创建子主题或添加page-events.php和page-past-performances.php,您可以复制/粘贴当前的主题page.php代码。
您可以在这里选择2个选项:
为每个模板创建一个特殊循环。对于page-events.php:
<?php
$today = getdate();
$args = array('date_query' => array(
array(
'after' => array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
'inclusive' => true
)
));
$query = WP_Query($args);
//Here goes the loop
对于page-past-performances.php:
<?php
$today = getdate();
$args = array('date_query' => array(
array(
'before' => array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
inclusive => false
)
));
$query = WP_Query($args);
//Here goes the loop
第二个选项使用动作钩子 pre_get_posts ,它看起来像这样(在你的functions.php文件中):
<?php
add_action('pre_get_posts', 'date_filter');
function date_filter($query) {
if($query->pagename == 'events') {
$query->set('date_query', [[
'after' => //same as above
'inclusive' => true
]]);
}
if($query->pagename == 'past-performances') {
$query->set('date_query', [[
'before' => //same as above
'inclusive' => false
]]);
}
}
?>