Intereting Posts
Как можно отменить регистрацию скриптов для определенного типа сообщений? Включить полный SSL для WordPress Показать более одного поста на главной странице, исключая определенную категорию Развертывание сайтов WordPress программно Как сделать плагин Newsletter видимым для пользователей с правами автора? Невозможно загрузить переводы в пользовательскую тему Как добавить опцию «создать страницу» для пользователей в приятеле, таком как facebook? WP_List_Table по умолчанию orderby является числовым Редактировать содержимое с помощью DoubleClick в редакторе $ query-> set ('post_type', 'post'); не работает Получить название категории плагина Event Organizer Общительные кнопки, отображающие, казалось бы, случайным образом Архивы для пользовательских типов сообщений (без страниц) Автоматическая страница блога с пользовательским дизайном Когда remove_filter не работает?

Пользовательский тип сообщения Post имеет дочернюю страницу «Страница» Post Type Post

Как ни странно, я не могу найти кого-либо, задающего этот вопрос именно таким образом.

Возможно ли, чтобы страница была дочерью CPT? Повторяемым образом (см. Ниже для получения дополнительной информации) nb Я не имею в виду наоборот – что достаточно легко увидеть: может ли пользовательский тип сообщения иметь родительскую страницу?

Пример:

  • У меня есть author CPT с постоянной ссылкой: http://example.com/authors/john-doe
  • Я хочу, чтобы пользовательская page типа «Спасибо» была опубликована по адресу http://example.com/authors/john-doe/thank-you

Возможно ли достичь этой постоянной структуры повторяемо? То есть, я хотел бы иметь несколько произвольных дочерних сообщений типа post post под произвольными сообщениями типа post post?

Nb не все авторские страницы должны будут иметь / author / author-name / thank-you, многие из них вообще ничего не нуждаются, некоторым может понадобиться другой пул eg / authors / jane-doe / happy-birthday-greeting

Я не могу думать о том, что у вас будет страница типа сообщения и она будет «повторяемой». Как сказал Джейк, это будет включать правила перезаписи. Я думаю, что самый простой способ сделать это – настроить некоторые шаблоны для любых этих случаев, которые могут быть в вашем каталоге тем, и использовать их для заполнения. Так, например:

 function wpse_add_query_vars( $vars ){ $vars[] = "tmpl"; $vars[] = "author_slug"; return $vars; } add_filter( 'query_vars', 'wpse_add_query_vars' ); function wpse_add_rewrite_rule() { add_rewrite_rule( '^authors/([^/]*)/([^/]*)', 'index.php?author_slug=$matches[1]&tmpl=$matches[2]', 'top' ); } add_action( 'init', 'wpse_add_rewrite_rule' ); function wpse_template_include( $template ) { if ( get_query_var( 'tmpl' ) && get_query_var( 'author_slug' ) ) { if ( file_exists( get_template_directory() . '/' . get_query_var( 'tmpl' ) . '.php' ) ) { $template = get_template_directory() . '/' . get_query_var( 'tmpl' ) . '.php'; } } return $template; } add_filter( 'template_include', 'wpse_template_include' ); 

Я тестировал это, и он работает, но его, вероятно, нужно будет настроить для ваших нужд. В основном, вот что происходит:

  1. Мы регистрируем запрос var tmpl чтобы указать имя файла шаблона в качестве имени. Нам нужно будет создать шаблоны, которые мы хотим в нашей папке темы.
  2. Мы добавим правило перезаписи, чтобы, если вы нажмете /authors/author-name/template-name мы можем загрузить шаблон (если он существует). Обязательно обновите свои постоянные ссылки в настройках после добавления или изменения правил перезаписи!
  3. Теперь мы подключаемся к template_include чтобы узнать, есть ли у нас набор tmpl var, проверьте, есть ли у нас шаблон в нашем каталоге тем и вернем этот шаблон, если он у нас есть. Так, например, мы нажимаем /authors/author-name/thank-you , мы будем искать файл шаблона thank-you.php в папке темы и загружать его вместо шаблона по умолчанию. У вас будет доступ к файлу автора в файле шаблона, используя get_query_var() .

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

Вот еще несколько ресурсов:

  1. Страница шаблона страницы на основе URL-адреса
  2. API Rewrite: типы сообщений и таксономии

Конечно, есть более чем один способ обмануть кошку, но надеюсь, что это поможет указать вам в правильном направлении или, по крайней мере, дать вам некоторые идеи о том, что возможно.

Я не могу представить себе простой и повторяемый способ сделать это, но проверьте: https://wordpress.org/support/topic/create-static-subpage-for-a-custom-post-type

Вы можете создать настраиваемый параметр в конце своего типа сообщения. После этого вы можете загрузить шаблон и использовать этот параметр для запроса содержимого страницы.