Поиск категорий и таксономий по алфавиту. Алфавитный указатель. [Готовое решение]

Готовые решения6 комментариев

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

Для начала приведу пример того что мы будем делать:

алфавитный укозатель

Мы реализуем функционал поиска по алфавиту исполнителей. Сами исполнители — это категории(или таксономии). То есть мы будет использовать алфавитный указатель для поиска

категорий(таксономий). Искать будем по первой букве в названии категории.

Первое что нам нужно сделать это создать в админке вордпресс новую страницу.

«Страницы» — «Добавить новую»

Теперь мы создадим новый шаблон для созданной страницы. В данном шаблоне у нас будет алфавитный указатель и результаты поиска.

Создадим файл с названием artists.php(в моем случае я ищу исполнителей, вы можете назвать как вам удобно).

Откроем созданный файл и пропишим основу нашего нового шаблона.

Template Name: artists — Задаем название нашего нового шаблона.

Теперь вернемся обратно в админку и для нашей страницы выберем в качестве шаблона:

выбор шаблона

Страницу создали осталось только написать поиск по алфавитному указателю.

Первое что мы сделаем это выведем русский, английски алфавиты а так же цифры — программно.

 

Вывод русского алфавита:

Английский алфавит:

Цифры:

Как вы видите буквы и цифры я вывожу списком, при этом каждая буква это ссылка. Давайте разберем ссылку.

/artists.html?letter=D 

/artists.html — Это адрес страницы которую мы создали и прописали наш шаблон. У вас данный адрес будет свой, поэтому вам в коде нужно заменить!

?letter=D  — тут мы передаем с помощью get запроса переменную letter которая содержит букву которую будем искать.

 

И так теперь у нас есть алфавит который автоматически строится и создает ссылки на нашу страницу поиска, передавая нужные параметры(нужную букву).

Теперь осталось написать обработчик который будет брать значение переменной letter и выводить нам нужные рубрики.

Откроем наш новый шаблон (в моем случае artists.php) и после строчки с get_header(); напишем следующий код:

Теперь у нас есть $letter_upp которая содержит букву в верхнем регистре. Именно категории(таксономии) которые начинаются на данную букву мы будем искать.

Теперь мы получим список всех категорий или таксономий, и каждую будем сравнивать с нашей буквой(будем брать 1ю букву из названия категории и сравнивать с той которая в get запросе).

Посмотрите код, он содержит комментарии:

Вот и все, наш поиск готов!

Скачать готовый код можно по ссылке ниже:

Алфавитный указатель для вордпресс

 


6 комментариев

  • Дмитрий 16.12.2015

    Спасибо! Искал возможность вывода информации из меток в алфавитном порядке и вот Ваш вариант мне очень подходит. Мне только надо было ещё помимо name вывести ещё и url найденной метки. Незнаю насколько правильно я сделал, но вроде такой вот код работает:
    echo «slug . «‘>» . $term->name . ««;
    может можно сделать более правильно?

  • Дмитрий, такой пример как у Вас работать не будет, во всяком случае правильно работать не будет. Я изначально пробовал также, но пришёл к немного другому способу. Вот : echo ‘term_id ) . ‘ ‘>’ . $term->name . ‘‘; get_category_link — это функция, которая выдает ссылку на категорию по переданному ей ID, а собственно этот ID мы получаем из массива $term. Такой способ точно будет работать так как нужно 🙂

  • Osman 20.01.2017

    День добрый!
    Спасибо большое за пост, очень полезная информация.
    У меня возник вопрос, как модифицировать код, чтобы алфавит делал выборку только по товарам из одной определенной категории? Можете помочь?
    Заранее благодарю!

  • stasonn777 12.09.2017

    Здравствуйте! Подскажите, пожалуйста, а как этот способ применить в woocommerce, чтобы делать выборку товаров по алфавиту (то есть не по категории, а по названию товара)?

Добавить комментарий

Войти с помощью: