日期过后,自动将Wordpress帖子从一个页面移动到另一个页面

时间:2017-10-16 10:57:05

标签: javascript php wordpress

我正在为本地表演艺术场地设计一个网站,我想添加一些代码,以便“活动”页面上的特定活动帖子将自动从“活动”移动到不同的“过去表演”事件日期过后的页面。我已经四处寻找此查询的任何现有解决方案,但尚未找到。

1 个答案:

答案 0 :(得分:1)

创建子主题或添加page-events.php和page-past-performances.php,您可以复制/粘贴当前的主题page.php代码。

您可以在这里选择2个选项:

  1. 为每个模板创建一个特殊循环。对于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
    
  2. 第二个选项使用动作钩子 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 
        ]]);
      }
    }
    ?>