Intereting Posts
Какую функцию можно использовать для внесения изменений в статус и видимость сообщения использование перезаписи для защиты страницы входа в систему Функция темы входа в WordPress / Buddypress Почему моя должность категории повторяется дважды WP_Query с пользовательским идентификатором типа сообщения Получите прямых детей от пользовательской таксономии Измените авторский пул от имени пользователя до псевдонима Список сообщений пользовательских типов сообщений, упорядоченных по условиям пользовательской таксономии? Каков наилучший способ избежать спамеров, регистрирующихся в моем блоге? Требование wp-login.php автоматически отправляет заголовки Отключить плагин на роль пользователя Как петля в петле (покажите детей, а затем внуков) Обработка ошибок плагина wordpress Отфильтруйте мета-ключ на странице результатов поиска с двумя CPT Почему комментарии и трекбэки все еще проходят для пользовательских типов сообщений?

Функция / Класс для отображения категорий с помощью флажков

Мне нужен список, как на картинке; ведьма здесь – Сообщения-> Новые-> Выбрать категории

WordPress Добавить новое сообщение, Категории

На данный момент у меня есть это

echo '<select name="pn-cats[]" size="8" style="width: 100%" multiple>'; $args = array( 'type' => 'post', 'child_of' => 0, 'parent' => '', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 0, 'hierarchical' => 1, 'exclude' => '', 'include' => '', 'number' => '', 'taxonomy' => 'category', 'pad_counts' => false ); $categories = get_categories( $args ); foreach ($categories as $category) { $option = '<option value="'.$category->cat_name.'">'; $option .= $category->cat_name; $option .= ' ('.$category->count.')'; $option .= '</option>'; echo $option; } echo '</select>'; 

Но мне не нравится мое решение, потому что категории не сортируются, как parent-> child на картинке. Мне нужен список с несколькими вариантами выбора.

Знаете ли вы какое-либо решение? wp_category_checklist не работает, потому что мне нужен этот список на общедоступной странице, а не в области администратора.

Solutions Collecting From Web of "Функция / Класс для отображения категорий с помощью флажков"

Вы можете сделать wp_category_checklist () доступным в любом из ваших шаблонов, используя:

 require_once( ABSPATH . '/wp-admin/includes/template.php' ); wp_category_checklist(); 

Если вы хотите иметь для него короткий код, который анализирует доступные аргументы, вот пример:

  add_shortcode('frontend-category-checklist', 'frontend_category_checklist'); function frontend_category_checklist($atts) { // process passed arguments or assign WP defaults $atts = shortcode_atts( array( 'post_id' => 0, 'descendants_and_self' => 0, 'selected_cats' => false, 'popular_cats' => false, 'checked_ontop' => true ), $atts, 'frontend-category-checklist' ); // string to bool conversion, so the bool params work as expected $atts['selected_cats'] = to_bool( $atts['selected_cats'] ); $atts['popular_cats'] = to_bool( $atts['popular_cats'] ); $atts['checked_ontop'] = to_bool( $atts['checked_ontop'] ); // load template.php from admin, where wp_category_checklist() is defined require_once( ABSPATH . '/wp-admin/includes/template.php' ); // generate the checklist ob_start(); ?> <div class="categorydiv"> <ul class="category-tabs"> <div id="taxonomy-category" class="categorydiv"> <div id="category-all" class="tabs-panel"> <ul id="categorychecklist" data-wp-lists="list:category" class="categorychecklist form-no-clear"> <?php wp_category_checklist( $atts['post_id'], $atts['descendants_and_self'], $atts['selected_cats'], $atts['popular_cats'], null, $atts['checked_ontop'] ); ?> </ul> </div> </div> </ul> </div> <?php return ob_get_clean(); } function to_bool($bool) { return ( is_bool($bool) ? $bool : ( is_numeric($bool) ? ((bool)intval($bool)) : $bool !== 'false' ) ); } 

Теперь вы можете использовать [frontend-category-checklist] на любой странице или на почте. Все аргументы работают, за исключением $walker .

Обновленный ответ: я сделал скрипку с объемным CSS, который вам нужен, чтобы сделать его похожим на список на панели инструментов. Флажки не работают правильно в скрипке, но они работают с интерфейсом WordPress (4.1). Вы можете очистить CSS правил, которые вам действительно не нужны, у меня не было на это времени.

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