Intereting Posts

Как создать мета-поле категорий с иерархическими флажками на Frontend?

Мой сайт позволяет использовать сообщения для публикации сообщений типа пользовательских сообщений («место»).

Я хотел бы отобразить тот же мета-поле «Категории», которое отображается в панели инструментов WordPress, когда вы добавляете или редактируете сообщение в интерфейсе:
метаданные бэкэнд-групп

Это связано с тем, что мета-поле «Категории» или иерархические флажки – это просто лучший способ просмотра и редактирования категорий, к которым принадлежит сообщение.

Как мне мета-поле «Категории» на интерфейсе?

Я знаю JQuery, поэтому не стесняйтесь бросать вещи JQuery, если они есть. Я бы предпочел использовать репликацию того, что делает WordPress для добавления / редактирования сообщения в бэкэнде, а не взломать с нуля.

Попробуйте wp_terms_checklist() / wp_category_checklist . Он выведет список post_category именем post_category .

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

Или используйте пользовательский ходок:

 class MyCategoryWalker extends Walker_Category{ public function start_el(&$output, $term, $depth, $args){ $args = wp_parse_args(array( 'name' => 'my_category_input', 'checked' => array(), ), $args); extract($args); $checked = checked(in_array($term->term_id, $checked)); ob_start(); ?> <li> <input type="checkbox" <?php $checked; ?> id="category-<?php print $term->term_id; ?>" name="<?php print $name; ?>[]" value="<?php print $term->term_id; ?>" /> <label for="category-<?php print $term->term_id; ?>"> <?php print esc_attr($term->name); ?> </label> <?php // closing LI is added inside end_el $output .= ob_get_clean(); } } 

Используйте его так:

 wp_list_categories(array( 'walker' => new MyCategoryWalker(), 'name' => 'my_category_input', // name of the input 'selected' => array(2, 5, 10), // checked items (category IDs) ));