Intereting Posts
Удаление тегов заголовков с каждой страницы TinyMCE – нет автоматического форматирования с использованием the_editor ()? Как удалить панель поиска из темы WordPress? Как редактировать страницы wordpress через cpanel? Добавьте «Описание» в таксономию «Быстрое редактирование» Пользовательские настройки плагина: нажатие «сохранить изменения» не отображает сообщение об успешном завершении Переадресация статической страницы на главную страницу Программно отформатировать содержимое страницы со страницы шаблона пользовательские сообщения на разных страницах Перезаписать роль пользователя Добавление динамического содержимого в end_lvl в классе Walker Невозможно сделать tax_query для разных типов сообщений Изменение стандартных пользовательских полей Metabox Name Ошибка разбивки на страницы – / страница / 2 404 Как добавить параметр «поддерживает» для настраиваемого типа сообщений?

Список всех страниц, включая архив

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

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

Так, например, иерархия выбора должна быть примерно такой: Work – (Custom Post Type Archive) Matchbox – (Страница пользовательского типа сообщений) Страница – (Обычная страница)

Мой текущий код:

 $sitePages= get_posts(array('post_type'=>array('page', 'work', 'people'), 'posts_per_page'=>-1, 'post_status'=>'publish', 'depth'=> 0)); $wp_cats = array(); foreach ($sitePages as $page_list ) { $wp_cats[$page_list->ID] = $page_list->post_title; } array_unshift($wp_cats, " "); 

а затем $wp_cats на $wp_cats вызывает его обратно.

любая помощь будет принята с благодарностью!

***** ОБНОВЛЕНИЕ *** Исходя из ответа Свена ∨∨

Я использовал следующий код для вывода всего.

 <select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>"> <option value="">Choose A Page</option> <?php $post_types = array( 'page', 'work', 'people' ); $wp_cats = array(); foreach ( $post_types as $post_type ) { $pages = get_pages( array( 'post_type'=>$post_type, 'posts_per_page'=>-1, 'post_status'=>'publish', 'depth'=> 0 ) ); $obj = get_post_type_object( $post_type ); // output custom post type archive with link if ( $post_type !== 'page' ){ echo '<option value="' . get_post_type_archive_link( $post_type ) .'"'; if (get_option( $value['id'] ) == get_post_type_archive_link( $post_type )) { echo 'selected="selected"'; } echo '>'. $obj->labels->singular_name . '</option>'; } foreach ( $pages as $page ) { $wp_cats[$page->ID] = $page->post_title; // output posts with link echo '<option value="' . get_permalink($page->ID).'" '; if (get_option( $value['id'] ) == get_permalink($page->ID)) { echo 'selected="selected"'; } echo '>&nbsp;&nbsp;&nbsp;'. $page->post_title .'</option>'; } } ?> </select> 

Да, это определенно возможно. Возьмите свои типы сообщений и вставьте их в $post_types чтобы $post_types каждый из них, чтобы вручную создавать архивы и сообщения:

 <?php // post types of your choice $post_types = array( 'page', 'work', 'people' ); $wp_cats = array(); foreach ( $post_types as $post_type ) { $pages = get_pages( array( 'post_type'=>$post_type, 'posts_per_page'=>-1, 'post_status'=>'publish', 'depth'=> 0 ) ); $obj = get_post_type_object( $post_type ); // output custom post type archive with link echo '<a href="' . get_post_type_archive_link( $post_type ) . '">' . $obj->labels->singular_name . '</a><br />'; foreach ( $pages as $page ) { $wp_cats[$page->ID] = $page->post_title; // output posts with link echo '<a href="' . get_permalink($page->ID) . '">' . $page->post_title . '</a><br />'; } } ?> 

Примечание. Как вы можете видеть, это приведет к появлению простых ссылок; Я думаю, вы можете легко настроить HTML-разметку самостоятельно, так как вы не запрашивали что-то особенное в своем вопросе.

Вы также можете автоматически генерировать структуру через wp_list_pages () , но иногда это становится сложно, если вам понадобится настраиваемая HTML-разметка:

 <?php // post types of your choice $post_types = array( 'page', 'work', 'people' ); foreach ( $post_types as $post_type ) { // generate complete list links and titles wp_list_pages( array( 'post_type'=>$post_type, 'title_li'=>$post_type ) ); } ?>