首页 > 解决方案 > 今天,过去一周,过去一个月的 Wordpress 搜索

问题描述

我还在学习php,但这对我来说太难了。任何帮助,将不胜感激。

基本上,我正在尝试为我的 wordpress 编写搜索代码,以便访问者可以选择发布帖子的时间范围,就像在 Google 搜索中一样。

在搜索框附近下拉:

现在我只有一个有效的搜索代码:

    <form action="/" method="get">
      <input type="text" name="s"  placeholder="Symbol" id="search" value="<?php the_search_query(); ?>" /> 
</form>

标签: phpwordpress

解决方案


我设法找到了答案。

您可以在页面上有按钮:

今天,昨天,过去 7 天,过去一个月,过去一年,所有时间。

单击时,循环将仅显示在该时间段内发布的帖子。

以下是代码(将它们添加到 index.php):

  1. 将此代码添加到您希望显示按钮的位置:
    <a href="?d=<?php date("d", strtotime( '-0 days' ) );
    echo date("d", strtotime( '-0 days' ) ); ?>"> Today </a> 
    <a href="?d=<?php date("d", strtotime( '-1 days' ) );
    echo date("d", strtotime( '-1 days' ) ); ?>"> Yesterday </a>
    <a href="?period=7daysago"> Past Week </a>
    <a href="?period=31daysago"> Past Month </a>
    <a href="?period=365daysago"> Past Year </a>
    <a href="?alltime"> All Time </a>
  1. 然后在第一个之后,添加以下代码:
                <?php 
    // Limit query posts to the current day
    // 
    $period = $_GET["period"];
    $day = $_GET["d"];
    $year = $_GET["y"]; 
    $args = array(
        'year' => (int) date($year),    
        'monthnum' => (int) date( 'M' ),    
        'day' => (int) date($day), 
        'date_query' => array(
            array(
                'after' => ($period), 
            )
        )
        
    );
    
    $query = new WP_Query( $args );
    
    // The Loop
    while ( $query->have_posts() ) :
        $query->the_post();
            
  // LOOP content goes here
                
    endwhile;

    
    ?>

我敢肯定,如果您愿意,您可以使用 css 轻松地创建一个下拉菜单。

作为一个新手,花了一段时间才弄清楚这一切。

享受。


推荐阅读