gordy
Мастер
- Регистрация
- 25 Авг 2015
- Сообщения
- 228
- Реакции
- 32
- Автор темы
- #1
PHP:
function go_filter() { // наша функция
$args = array(); // подготовим массив
$args = array( 'post_type' => 'post' );
global $wp_query; // нужно заглобалить текущую выборку постов
if ($_GET['suser'] != 0) { // если передана фильтрация по разделу
$args['author'][] = array( // пишем условия в author
'key' => 'author', // название произвольного поля
'value' => (int)$_GET['author'], // переданное значение произвольного поля
'type' => 'numeric' // тип поля, нужно указывать чтобы быстрее работало, у нас здесь число
);
}
if ($_GET['scat'] != 0) { // если передана фильтрация по разделу
$args['category__and'][] = array( // пишем условия в category__and
'key' => 'category__and', // название произвольного поля
'value' => (int)$_GET['category__and'], // переданное значение произвольного поля
'type' => 'numeric' // тип поля, нужно указывать чтобы быстрее работало, у нас здесь число
);
}
query_posts(array_merge($args,$wp_query->query)); // сшиваем текущие условия выборки стандартного цикла wp с новым массивом переданным из формы и фильтруем
}
?>
<div <?php tie_content_column_attr(); ?>>
<form class="filter" action="" method="get"><!-- action пустой, чтобы ссылалось на текущую страницу -->
<label>Раздел:
<select name="suser"> <!-- Раздел - селектлист -->
<option value="">Выберите автора</option>
<?php
$users = get_users();
foreach($users as $user)
{
echo "<option ".($user->ID==$susr?"selected ":"")."value=\"".$user->ID."\">".$user->display_name."</option>";
}
?>
</select>
<select name="scat"> <!-- Раздел - селектлист -->
<option value="">Выберите категорию</option>
<?php
$categories = get_categories();
foreach($categories as $category)
{
echo "<option ".($category->term_id==$scat?"selected ":"")."value=\"".$category->term_id."\">".$category->name."</option>";
}
?>
</select>
</label>
<button type="submit">Отфильтровать</button>
</form>
<?php
if ( $query->have_posts() ) :
// Get the layout template part
TIELABS_HELPER::get_template_part( 'templates/archives2', '', array(
'layout' => tie_get_option( 'blog_display', 'excerpt' ),
'excerpt_length' => tie_get_option( 'blog_excerpt_length' ),
'my_query' => $query
));
// Page navigation
TIELABS_PAGINATION::show( array( 'type' => tie_get_option( 'blog_pagination' ) ) );
else:
echo"извините у данного автора записей не обнаружено";
endif;
?>
</div><!-- .main-content /-->
помогите код составить правильно (корректно), просто он выдает ошибку
Fatal error: Uncaught Error: Call to a member function have_posts() on null in
Последнее редактирование: