Мне действительно нужна помощь в решении этой проблемы в 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
Вы можете отображать сообщения на основе опубликованного месяца / года, используя аргументы year
и monthnum
для 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, );
Вы можете использовать атрибут 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