0

我真的需要关于 wordpress 中关于显示和过滤数据的这个问题的帮助。我有这种形式的 html,所以首先我有两个下拉列表(DDL),它们应该与帖子的日期相关。第一个 DDL 应该包含所有年份的帖子,第二个 DDL 应该包含所有月份的帖子。

<select name="month">
    <option value="2001"> 2001</option>                                                                        
    <option value="2002"> 2002</option>                                                                        
    <option value="2003"> 2003</option>                                                                      
    <option value="2004"> 2004</option>                                                                          
    <option value="2005"> 2005</option>                                                                      
    <option value="2006"> 2006</option>                                                                        
    <option value="2008"> 2008</option>                                                                            
   <option value="2000"> 2000</option>                                             
</select>



<select name="month">
        <option value="January"> 01 </option>                                                                        
        <option value="Feburary"> 02 </option>                                                                        
        <option value="March"> 03 </option>                                                                      
        <option value="April"> 04 </option>                                                                          
        <option value="June"> 06 </option>                                                                      
        <option value="July"> 07 </option>                                                                        
        <option value="August"> 08 </option>                                                                            
       <option value="December"> 12 </option>                                             
    </select>

现在我需要通过选择 DDL、月份和年份来显示帖子。我正在使用 while 循环来显示所有帖子。像这样的东西:

<?php
    $posts_per_row = 3;
    $posts_per_page = 6;
    $category_name = 'music';
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
         'category_name' => $category_name,
         'posts_per_page' => $posts_per_page,
         'paged' => $paged,
    );
    query_posts($args);
    if (have_posts()) {
       while (have_posts()) {
       the_post();
       ....
    }
} else {
    ....                    
}
?>          

模板在functions.php中也有分页功能

4

2 回答 2

1

您可以使用 的yearmonthnum参数根据发布的月/年显示帖子query_posts()

// you have "month" in your HTML instead of "year"
$year = $_POST['year'];   
$month = $_POST['month']; 
$args = array(
     'category_name' => $category_name,
     'posts_per_page' => $posts_per_page,
     'year' => $year,
     'monthnum' => $month,
     'paged' => $paged,
);
于 2014-07-19T22:25:14.027 回答
0

您可以在查询参数中使用 year 和 monthnum 属性。

像这样:

$posts_per_row = 3;
$posts_per_page = 6;
$category_name = 'music';
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
     'category_name' => $category_name,
     'posts_per_page' => $posts_per_page,
     'paged' => $paged
);
if(isset($_POST['year'])){
   $args['year'] = $_POST['year'];
}
if(isset($_POST['month'])){
   $args['monthnum']= $_POST['month'];
}

query_posts($args);
if (have_posts()) {
   while (have_posts()) {
   the_post();
   ....
}

并且您在选择“月份”中的值更改为:

<select name="month">
        <option value="01"> 01 </option>                                                                        
        <option value="02"> 02 </option>                                                                                                                                            
         ...                                                                           
        <option value="12"> 12 </option>                                             
</select>

更多信息在这里:http ://codex.wordpress.org/Function_Reference/query_posts

于 2014-07-19T22:29:57.787 回答