Использование сообщений как страница

Я работаю над проектом клиента, и они хотели бы использовать сообщения так же, как мы бы традиционно использовали страницы из-за ограниченного количества страниц, которые может обрабатывать одна WordPress, и способности более категоризировать должности более эффективно.

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

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

Я надеюсь, что у кого-то есть решение, которое они могут пожелать поделиться.

Solutions Collecting From Web of "Использование сообщений как страница"

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

Количество страниц не ограничено. Я видел сайт с более чем 50 000 страниц, работающих гладко.

Раньше в некоторых случаях синтаксический анализ permalink был медленным, но это было решено давно (by @Otto , если я правильно это помню).

Вы также можете использовать категории, теги или пользовательские таксономии на страницах.

Простой пример, демонстрирующий, как сделать страницы более похожими на сообщения:

add_action( 'wp_loaded', 't5_page_enhancements' ); /** * Excerpts and tags for post type 'page'. * * @wp-hook wp_loaded * @return void */ function t5_page_enhancements() { add_post_type_support( 'page', 'excerpt' ); register_taxonomy_for_object_type('post_tag', 'page'); add_filter( 'pre_get_posts', 't5_add_pages_to_tax_query' ); } /** * Let WP search for post type 'page' on tag archives. * * @wp-hook pre_get_posts * @param object $query * @return object */ function t5_add_pages_to_tax_query( $query ) { if ( ! is_main_query() or ! is_tag() ) return $query; $query->set( 'post_type', array ( 'page', 'post' ) ); return $query; }