2012-07-15 43 views
0

我有一個問題:顯示歸檔(在下拉列表)和一個頁面內類別(在下拉列表)

我有一個存檔模板頁面,並在那裏我想顯示兩個下拉菜單:歸檔和分類下拉列表,並當我點擊例如存檔爲11月份,那麼所有項目將從11月份的側面顯示,並且它也可以運行...但是,如果您選擇了一個菜單項目,則將顯示所有項目,而不僅僅是此類別的項目。

這裏是代碼:

在archives.php談到這個代碼(在這裏是正確的...我認爲):

<div id="archive-browser"> 
    <div> 
     <h4>Month</h4> 
     <select id="month-choice"> 
      <option val="no-choice"> &mdash; </option> 
      <?php wp_get_archives(array(
       'type' => 'monthly', 
       'format' => 'option' 
      )); ?> 
     </select> 
    </div> 
    <div> 
     <h4>Category</h4> 
     <?php 
      wp_dropdown_categories('show_option_none= -- ');?> 
    </div> 
</div> 
<div id="archive-wrapper"> 
<div id="archive-pot"> 
</div></div>  

而在其他的模板,名爲檔案的getter .PHP談到這段代碼,這裏是什麼地方的錯誤:

<?php 
    /* 
     Template Name: Archives Getter 
    */ 
    $year = htmlspecialchars(trim($_POST)); 
    $month = htmlspecialchars(trim($_POST)); 
    $cat = htmlspecialchars(trim($_POST)); 
    $querystring = "year=$year&monthnum=$month&cat=$cat&posts_per_page=-1"; 
    query_posts($querystring); 
?> 
<?php if (($year == '') && ($month == '') && ($cat == '-1')) { ?> 
    <table id="archives-table"><tr><td style='text-align: center; font-size: 15px; padding: 5px;'>Please choose from above.</td></tr></table> 
<?php } else { ?> 
    <table id="archives-table"> 
     <?php  
      if (have_posts()) : while (have_posts()) : the_post(); ?> 
       <tr> 
        <td><img src="<?php echo get_post_meta($post->ID, 'PostThumb', true); ?>" alt="" style="width: 35px;" /></td> 
        <td><a href='<?php the_permalink(); ?>'><?php the_title(); ?></a></td> 
        <td><?php comments_popup_link(' ', '1 Comment', '% Comments'); ?></td> 
        <td><?php the_date('m/j/Y'); ?></td> 
       </tr> 
     <?php 
      endwhile; else: 
       echo "<tr><td style='text-align: center; font-size: 15px; padding: 5px;'>Nothing found.</td></tr>"; 
      endif; 
     ?> 
    </table> 
<?php } ?> 

這兩者連接在一起,所以當我運行檔案模板,它從吸氣調用數據。

我認爲這個錯誤在querystring的某處...只有類別下拉菜單顯示不是帖子。謝謝你的幫助。


謝謝,但存檔下拉正常工作......然而類別下拉菜單可顯示未在她的類別後,當我在類別XY點擊。這裏是jQuery代碼,因爲它是與此和後場的名稱連接:

和後場的名字有我改變了:

$year = htmlspecialchars(trim($_POST['year_y'])); 
    $month = htmlspecialchars(trim($_POST['month_m'])); 
    $cat = htmlspecialchars(trim($_POST['cat_c'])); 



jQuery(function() { 

    jQuery("#archive-wrapper").height(jQuery("#archive-pot").height()); 

    jQuery("#month-choice").change(function() { 

     // Update category choice dynamically 

     // This is much harder, needs another intermediary getter 

    }); 

    jQuery("#archive-browser select").change(function() { 

     jQuery("#archive-pot") 
      .empty() 
      .html("<div style='text-align: center; padding: 30px;'><img src='' /></div>"); 



     var dateArray = jQuery("#month-choice").val().split("/"); 

     var y = dateArray[3]; 

     var m = dateArray[4]; 

     var c = jQuery("#cat").val(); 



     jQuery.ajax({ 



      url: "/archive-getter/", 

      dataType: "html", 

      type: "POST", 

      data: ({ 

       "year_y": y, 

       "month_m" : m, 

       "cat_c" : c 


      }), 

      success: function(data) { 

       jQuery("#archive-pot").html(data); 



       jQuery("#archive-wrapper").animate({ 

        height: jQuery("#archives-table tr").length * 50 

       }); 



      } 



     }); 



    }); 



}); 
+0

您應該編輯您的問題或添加評論。當它不是答案時,不要將其作爲答案添加。除了我沒有更正下拉菜單之外,我更正了發佈到帖子查詢中的值,這是顯示您說的帖子不起作用的部分。我將編輯我的答案,以包含你在這裏提到的新的_post名稱 – 2012-07-15 23:59:03

回答

0

這裏需要指定後場名稱:

$year = htmlspecialchars(trim($_POST)); 
$month = htmlspecialchars(trim($_POST)); 
$cat = htmlspecialchars(trim($_POST)); 

應該是這樣的(名稱取決於你的表單字段

$year = htmlspecialchars(trim($_POST['year_y'])); 
$month = htmlspecialchars(trim($_POST['month_m'])); 
$cat = htmlspecialchars(trim($_POST['cat_c'])); 

氏慈祥的形式投入應該有名稱:

<select id="month-choice"> 

這樣

<select id="month-choice" name="month"> 
+0

你好, 對不起,我點擊回覆...所以我現在真的是所有可能的組合在這裏嘗試「http://codex.wordpress.org/Function_Reference/query_posts Example_4「,但不幸的是,仍然沒有下拉菜單...它根本不會顯示這些產品按類別或月份的類別XY XY .... 我不知道該怎麼做還沒有...有任何想法或有人可以測試腳本。謝謝您的回答。 – 2012-07-20 04:24:14