Intereting Posts
Только выполнить функцию jQuery (при готовности документа) на странице имеет короткий код из плагина Как реализовать локатор хранилища карт Google Ошибка разбивки на страницы – / страница / 2 404 Результат короткого кода появляется перед содержимым страницы Ограниченное количество страниц на 10 "страниц: 1 … 10" Как отображать последние сообщения на домашней странице с помощью пользовательского HTML Пользовательское правило перезаписи не выбрано WordPress Запрос / список всех условий и их счетчик сообщений Как создать тест, который вызывает is_front_page в phpunit? Почему WordPress добавляет тему не перечислить конкретную тему? Использование wp_parse_args для настройки параметров по умолчанию для плагина Как сортировать сообщения внутри категорий HTTP sitewide, за исключением: wp-admin и 2 пользовательских каталогов get_term_link – Ending to single.php Как перезаписать JS-переменную с помощью wp_localize _script?

Воссоздание иерархии таксономий для выпадающего меню формы?

У меня есть форма, содержащая раскрывающееся меню. Эта форма находится на странице form.php и не является частью моей темы. Он существует за пределами моего сайта. В этом выпадающем меню содержится мой список значений для пользовательской таксономии, называемой Formats . Мои форматы таковы:

 Entry Form Facebook - Entry Form - Page Twitter 

Это мой код:

 <?php include("wp-blog-header.php"); ?> <?php global $wpdb; $getFormats = $wpdb->get_results($wpdb->prepare(" SELECT * FROM wp_terms p LEFT OUTER JOIN wp_term_taxonomy t ON p.term_id = t.term_id WHERE t.taxonomy = 'format' ")); ?> // This gets all the values for the format taxonomy <form> //start form <select name="format"> //start dropdown <?php foreach ($getFormats as $format) { //spit out the formats echo "<option value='".$format->name."'>".$format->name."</option>"; } ?> </select> //end dropdown </form> // end form ?> 

Пока что выпадающее меню выглядит так:

 Entry Form Facebook Entry Form Page Twitter 

Первый вопрос: как я могу заставить иерархию придерживаться (т. Е. Сохранить отступы)?

Мой вывод HTML выглядит следующим образом:

 <option value="Entry Form">Entry Form</option> <option value="Facebook">Facebook</option> <option value="Entry Form">Entry Form</option> // <---- this is gonna be a problem <option value="Page">Page</option> <option value="Twitter">Twitter</option> 

Второй вопрос: вы заметите, что вывод для второго экземпляра формы ввода идентичен первому экземпляру. Очевидно, что это будет проблемой для представления формы. Как я могу сделать это уникальным?

Solutions Collecting From Web of "Воссоздание иерархии таксономий для выпадающего меню формы?"

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

Вот так:

 define( 'WP_USE_THEMES', false ); require( './wp-load.php' ); wp_dropdown_categories( array( 'child_of' => 0, 'class' => 'postform', 'depth' => 0, 'echo' => 1, 'exclude' => '', 'hide_empty' => false, 'hide_if_empty' => false, 'hierarchical' => true, 'id' => '', 'name' => 'cat-dropdown', 'order' => 'ASC', 'orderby' => 'name', 'selected' => 0, 'show_count' => 0, 'show_option_all' => '', 'show_option_none' => __('None'), 'tab_index' => 0, 'taxonomy' => 'category', ) ); 

Выходы:

 <select name='cat-dropdown' id='cat-dropdown' class='postform' > <option value='-1'>None</option> <option class="level-0" value="2">Other</option> <option class="level-0" value="1">Uncategorized</option> <option class="level-1" value="4">&nbsp;&nbsp;&nbsp;Other</option> <option class="level-2" value="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Other</option> </select> 

Для категории по умолчанию: список категорий