Как на сайте WordPress создать выпадающий список меток? Выпадающий список wordpress


Settings API WordPress: выпадающий список

Рассматриваемый здесь материал призван показать начинающим веб-разработчикам, как создавать  выпадающие списки на штатных страницах настроек административной части блоговой платформы WordPress. Разумеется описанный элемент управления HTML-форм мы будем не только просто выводит на экран, но и сохранять его значение в базу данных. Более того я покажу также одну ошибку, допускаемую при работе с подобного рода кодом. Сразу отмечу, что в конце статьи для любителей халявы я выложил ZIP-архив с рабочим исходником плагина-примера. Далее смотрим на прикрепленный скриншот, вникаем в код, читаем пояснения:

WordPress: выпадающий список

add_action('admin_init', 'snsel_admin_init'); register_uninstall_hook(__FILE__, 'snsel_deinstall');   function snsel_admin_init() { add_settings_field( 'dropdown-elements-id', // Идентификатор элемента формы. 'Это выпадающий список', // Обыкновенный заголовок. 'snsel_elements_callback', // Callback-функция для показа элемента формы. 'writing', // Раздел "Настройки публикации". 'post_via_email' ); # Добавляем поле в таблицу "options": register_setting('writing', 'snsel_select_item'); }   function snsel_elements_callback() { $dropdown_list = get_option('snsel_select_item'); $source = '<select name="snsel_select_item">'; $source .= '<option value="default">Какую CMS вам лучше взять...</option>'; $source .= '<option value="drupal"'. selected($dropdown_list, 'drupal', false). '>Drupal</option>'; $source .= '<option value="joomla"'. selected($dropdown_list, 'joomla', false). '>Joomla</option>'; $source .= '<option value="bitrix"'. selected($dropdown_list, 'bitrix', false). '>1C Bitrix</option>'; $source .= '</select>'; print $source; }   function snsel_deinstall() { delete_option('snsel_select_item'); }

При этом происходит примерно следующее:

  1. Добавляем действие на admin_init.
  2. Регистрируем функцию крючка удаления данных, сгенерированных плагином в процессе работы.
  3. Делаем обработчик для того, что мы навесили первым шагом: регистрируем новый элемент управления на нужной нам странице админки в нужной секции, далее добавляем поле в базу данных.
  4. Выводим то, что мы зарегистрировали в предыдущем шаге. В данном случае это выпадающий список.
  5. Реализуем крючок удаления данных, сгенерированных плагином в процессе работы.

При реализации четвертого шага с выводом списка многие начинающие WordPress-разработчики совершают такую ошибку: пытаются обращаться к сохранненому полю в базе данных, используя подобный набор символов, прошу обратить внимание на наличие квадратных скобок, которые подразумевают, что $dropdown_list['snsel_select_item'] - это элемент массива:

function snsel_elements_callback() { $dropdown_list = get_option('snsel_select_item'); $source = '<select name="snsel_select_item">'; $source .= '<option value="default">Какую CMS вам лучше взять...</option>'; $source .= '<option value="drupal"'. selected($dropdown_list['snsel_select_item'], 'drupal', false). '>Drupal</option>'; $source .= '<option value="joomla"'. selected($dropdown_list['snsel_select_item'], 'joomla', false). '>Joomla</option>'; $source .= '<option value="bitrix"'. selected($dropdown_list['snsel_select_item'], 'bitrix', false). '>1C Bitrix</option>'; $source .= '</select>'; print $source; }

Делайте выводы, - при этом в самой таблице базы данных поле выглядит примерно вот так:

Поле в базе данных MySQL

www.sooource.net

Как на сайте WordPress создать выпадающий список меток?

Часто на сайтах их владельцы выводят список тегов для более удобной навигации. Без сомнений, это действительно помогает посетителю быстрее найти нужную информацию на сайте. Но что делать, если этих тегов больше сотни? В этом случае, где бы Вы их не вывели, этот блок будет занимать довольно много пространства. Поэтому и есть смысл выводить теги в виде выпадающего списка, что позволит не загромождать пространство на сайте.

Как на сайте WordPress создать выпадающий список меток?

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

Виджет Облако меток на сайте

Но, как уже было отмечено, при большом количестве тегов этот способ не подходит. Для решения задачи воспользуемся сторонним решением — бесплатным плагином Taxonomy Dropdown Widget.

Плагин Taxonomy Dropdown Widget

Сразу после установки и активации плагина следует перейти в раздел Внешний вид -> Виджеты, где найти виджет Taxonomy Dropdown Widget и перетащить в желаемое место сайдбара.

Раздел Виджеты

Как видно, виджет предоставляет множество настроек для вывода тегов на сайте.

Настройка виджета Taxonomy Dropdown Widget

Отметим, что выставленных по умолчанию настроек вполне хватит для успешной работы плагина. Но все же Вы можете изменить надписи виджета (поля Заголовок и Default dropdown item). Также можно отобразить количество статей, связанных с тегов. Для этого служит опция Display object (post) counts after term names. Помимо этого, плагин позволяет исключить конкретные теги из вывода в виджете (блок Include/Exclude Terms). Тут просто необходимо перечислить ID тегов, которые нужно скрыть. Для сохранения всех настроек следует нажать кнопку Сохранить, после чего можно переходить в пользовательскую часть сайта.

Главная страница сайта

Если Вам понравилась статья — поделитесь с друзьями

wpschool.ru

wp_dropdown_users() - вывод списка пользователей WordPress

Блог  /  Кодекс WordPress  /  wp_dropdown_users() — фунция, создающая выпадающий список из пользователей сайта

Описание этой функции публикую вслед посту, в котором она используется (про фильтр записей по пользователям в админке).

wp_dropdown_users( $args = '' )

Параметры массива $args

show_option_all (строка) Добавляет элемент селекта для выбора всех пользователей, по умолчанию null — не добавлять.
$args = array( 'show_option_all' => 'Все пользователи' );
<select name="user"> <option value="0">Все пользователи</option> <option value="1">Misha</option> ... </select>
show_option_none (строка) Противоположное предыдущему параметру. Добавляет элемент <option> для выбора «никого из пользователей». Строка же, указанная в этом параметре, будет являться лейблом этого <option>, по умолчанию null — не добавлять.
<select name="user"> <option value="-1">Не выбирать пользователя</option> <option value="1">Misha</option> ... </select>
orderby (строка) сортировать выводимых пользователей по: order (строка) порядок сортировки: include (строка) Если вам нужно отобразить только каких-то конкретных пользователей, просто укажите их ID в этом параметре через запятую. exclude (строка) Если вам нужно исключить каких-либо пользователей из списка, просто укажите их ID в этом параметре через запятую. multi (логическое) Если вы указываете этот параметр равным true, будет подразумеваться, что вы хотите использовать функцию wp_dropdown_users() несколько раз на странице. По факту же будет просто удалён атрибут ID из селекта (по умолчанию — false). show (строка) Что отображать в качестве лейблов: echo (логическое) Вывести (true) или возвратить (false) результат действия функции. selected (целое число) ID выбранного пользователя в списке. Может быть также равным -1 при задействованном параметре show_option_none. include_selected (логическое) При указанном true включает выбранного пользователя в список, даже если он там не должен отображаться, исходя из других параметров (по умолчанию — false). name (строка) Атрибут name селекта. id (строка) Атрибут id селекта. По умолчанию совпадает с атрибутом name. class (строка) Атрибут class селекта. blog_id (целое число) Для мультисайта — укажите ID блога, с которого будут вытаскиваться пользователи (по умолчанию — текущий блог). who (строка) Если указать значение этого параметра равным authors, то будут выводиться только пользователи с правами авторов и выше.

Пример использования

<h3>Пользователи</h3> <form action="#" method="get"> <?php $args = array( 'show_option_all' => 'Все пользователи', 'name' => 'author' ); wp_dropdown_users( $args ); ?> <button>Выбрать</button> </form>

Фильтры

У функции также есть два фильтра.

$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $r );

Здесь $query_args — массив установленных пользователем параметров, а $r — массив параметров по умолчанию, запускается практически в самом начале функции.

$html = apply_filters( 'wp_dropdown_users', $output );

Нетрудно догадаться, что $output — это HTML код, возвращаемый/выводимый функцией, задействуется в самом конце.

misha.blog


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта