3
我正在爲本地表演藝術場所設計一個網站,並且我想添加一些代碼,以便「Events」頁面上的特定活動帖子將自動在活動日期過後,從「活動」移至其他「過去的活動」頁面。我已經查找過針對此查詢的任何現有解決方案,但尚未找到解決方案。在日期過後,自動將Wordpress帖子從一個頁面移動到另一個頁面
我正在爲本地表演藝術場所設計一個網站,並且我想添加一些代碼,以便「Events」頁面上的特定活動帖子將自動在活動日期過後,從「活動」移至其他「過去的活動」頁面。我已經查找過針對此查詢的任何現有解決方案,但尚未找到解決方案。在日期過後,自動將Wordpress帖子從一個頁面移動到另一個頁面
創建一個子主題或添加page-events.php和page-past-performances.php,你可以複製/粘貼你當前的主題page.php代碼。
在這裏,您可以選擇兩個選項:
創建爲每個模板一個特殊的循環。對於網頁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
對於網頁過去-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
]]);
}
}
?>
你需要考慮的cron。 – Jan
或者您可以爲「Events」頁面創建自定義模板,該頁面僅查詢那些日期高於今天的帖子。 –
^這是唯一的合法答案。使用cron移動帖子是一種不好的方式,因爲我們根本不需要機器的能力,因爲我們可以簡單地通過日期時間來查詢它。克倫族在這裏有些壓迫。 –