поиск по произвольным полям
Заметки по Wordpress

Сustom fields – создаем поиск по произвольным полям

Сustom fields - создаем поиск по произвольным полям

Сustom fields  или пользовательские поля по русски  являются отличной функцией в WordPress . Они позволяют хранить любую дополнительную информацию (метаданные) о посте.

Когда я только начинал использовать WordPress, я и не представлял насколько мощным дополнением к сайту  они могут быть.

В этом видеоуроке мы  добавим возможность поиска ваших постов по пользовательским поля, хоть это и не предусмотрено, встроенной функцией поиска WordPress. Она не ищет по значениям пользовательских полей.

[spoiler name=”Необходимые данныеДля открытия – нажмите“]

1. Создание страница поиска.
Открываем page.php в вашей теме и сохранить его копию как новый файл. Я назвал новый шаблон страницы filtr.php.

Дайте имя в файле шаблона, добавив следующую строчку в самом начале:
[crayon lang=’html’]Template Name: Фильтр[/crayon]

Теперь, когда вы создали новую страницу в вашей теме, заходим в админ панель и создаем новую страницу. Например “Поиск” и выбираем появившийся в списке доступных шаблонов нашу созданную страничку.

2. Создаем фильтр в виде выпадающего списка
Чтобы создать форму, которая позволит пользователям фильтровать посты, добавляем этот код, в filtr.php, туда где бы вы хотели видеть выпадающий список :

[crayon]



[/crayon]

3. Отображение результатов поиска.

Теперь,когда мы фактически создали фильтр поиска, нам надо как-то вывести этот результат. Для этого мы добавляем следующий код, в filtr.php после кода формы фильтра:

[crayon lang=’php’]
< ?php $counties = $_GET['ИМЯ ПОЛЯ']; if ($counties) { $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'cat'=>19,
‘meta_value’ => $counties,
‘paged’=>$paged,
);

query_posts($args);
} else {
query_posts(‘cat=19&posts_per_page=4’);
}

if ($counties) { ?>

Результат поиска по – < ?php echo $counties; ?>

< ?php } else { ?>

Недавно добавленные

< ?php } if (have_posts()) : while (have_posts()) : the_post(); $event_ИМЯ ПОЛЯ = get_post_meta($post->ID, ‘ИМЯ ПОЛЯ’, true); ?>

” title=”< ?php the_title_attribute(); ?>“> Подробнее

< ?php endwhile; ?>
< ?php else : ?>

Извините, ничего не найдено

< ?php endif; ?>

< ?php wp_reset_query(); ?>
[/crayon]

Во всем получившемся коде на странице filtr.php заменяем ИМЯ ПОЛЯ на нужное вам имя пользовательского поля.
А вместо ID_КАТЕГОРИИ указываем номер нужной вам категории, если надо сделать фильтр по всем категория, то удаляем данную аргумент.

 

На этом все. у Вас должна получиться рабочая страничка с фильтром по пользовательским полям.

[/spoiler]

Если что не получается или непонятно пишите в комментарии.

Новые посты

Шорткоды wordpress – добавление в HTML редактор

Гордеев Игорь

Создаем пользовательские типы сообщений без труда.