как иметь только один пост post post post?

Можно ли ограничить CPT только одним? То, что я хотел бы сделать, – создать CPT под названием «Главная». Он будет управлять всеми элементами на домашней странице. Я хочу запрограммировать его, поэтому, когда пользователь нажимает на ссылку «Управление домашней страницей», они перейдут прямо к экрану редактирования сообщений. Они пропустят экран «Все сообщения». Кто-нибудь думает, что это возможно?

Или, может быть, у кого-то есть идея достичь этой цели совершенно иначе?

Solutions Collecting From Web of "как иметь только один пост post post post?"

Я бы предложил создать страницу параметров тем для этой цели.

https://wordpress.stackexchange.com/questions/tagged/theme-options

add_options_page () в Codex.

Или есть ли что-нибудь особенное на экране редактирования сообщений, которое вы хотите использовать, было бы трудно попасть на страницу параметров темы?

Вы хотите этого, потому что ваш клиент запутался, и установка страницы на домашнюю страницу не будет.

Но ваше решение – это червь червей, ожидающих взрыва в вашем лице, поэтому вместо этого у меня есть гораздо лучшее решение!

Использовать шаблон home.php

В WordPress по умолчанию home.php используется в качестве домашней страницы. Если он не найден, используется front-page.php, и если он не найден, он использует index.php

Поэтому создайте home.php, разместите там код домашней страницы, а затем добавьте страницу настроек с редакторами WYSIWYG и загрузчиками изображений для различных частей контента. Вы можете даже напрямую ссылаться на страницу настроек с внешнего интерфейса, если вы входите на сайт.

Если ваш клиент все еще запутался, используйте экранные подсказки, чтобы показать им, как это сделать. Скорее всего, ваш клиент смущен, потому что они не вкладывали времени, чтобы читать инструкции или понимать это.

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

Возможно, этот плагин может вам помочь:

Авторский сайт

Плагин WordPress

Стив, я понимаю, что вы хотите:

  1. настраиваемый тип сообщения без подменю «Все сообщения»
  2. вы просто хотите, чтобы ссылка «Изменить главную страницу» отображалась под подменю «Сообщения»?
  3. И вы не хотите, чтобы ваши пользователи добавляли более 1 сообщения для этого конкретного типа сообщения.

В приведенном ниже коде можно настроить администратор WordPress, чтобы сделать следующее:

Заметьте, что пользователи могут добавлять сообщение в пользовательский тип сообщения, используя wp_insert_post

 <?php /** * Plugin Name: Home Page CPT **/ class WPSE_26330_Homepage_CPT { function __construct() { // add the default homepage on plugin activation register_activation_hook( __FILE__, array( &$this, 'add_home_page_post' ) ); // register the homepage post type add_action( 'init', array( &$this, 'register_homepage_cpt' ) ); // add the menu link add_action( 'admin_menu', array( &$this, 'edit_homepage_link' ) ); } function edit_homepage_link() { global $submenu, $pagenow; // query the homepage posts $homepage = new WP_Query( 'post_type=homepage' ); // if its new post page and we have homepage if ( $pagenow == 'post-new.php' && $homepage->have_posts() ) { wp_die('You cant add more then one homepage'); } // if we have homepage post, show the edit link else the add homepage link if ( $homepage->have_posts() ) { $homepage->the_post(); $link = get_edit_post_link( get_the_ID(), 'return' ); $title = 'Edit Home Page'; } else { // in case if the user has deleted the default post $link = get_bloginfo( 'url' ). '/wp-admin/post-new.php?post_type=homepage'; $title = 'Add Home Page'; } $submenu['edit.php'] = array( array( $title, 'manage_options', $link ) ) + $submenu['edit.php']; } function register_homepage_cpt() { $args = array( 'label' => 'homepage', 'description' => 'Home Page post type', 'public' => true, 'show_in_menu' => false ); register_post_type( 'homepage', $args ); } function add_home_page_post() { // on activation first regsiter the post type $this->register_homepage_cpt(); // add the first and only post $post_data = array( 'post_title' => 'Home Page', 'post_type' => 'homepage', 'post_statue' => 'publish', 'post_author' => 1 ); wp_insert_post( $post_data ); } } $GLOBALS['wpse_homepage_cpt'] = new WPSE_26330_Homepage_CPT; ?> 

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

В принципе, я начал со страницы под названием «home». Затем, используя расширенные пользовательские поля , я создал различные поля, которые я хотел, чтобы клиент мог контролировать – два поля WYSIWYG, несколько полей изображений, несколько полей ссылок, вы получили эту идею. Затем, при настройке правил для этого типа ACF, я спрятал основную область содержимого на странице редактирования. Я старался добавлять четкие и сжатые правила для каждой области контента, чтобы избежать путаницы, поэтому они точно знали, что они могут и не могут сделать в каждой области.

Таким образом, когда клиент нажимает «редактировать страницу» в меню WordPress, им предоставляется страница «Редактировать сообщение» для «Главная», при этом все области, которые они контролируют, аккуратно раскладываются.

Затем я установил шаблон home.php, чтобы вызывать вывод поля в соответствующих местах. На главном сайте ACF есть несколько хороших учебников и фрагментов кода.

Это сделало ОЧЕНЬ счастливым клиентом и потратило много нового разочаровывающего обслуживания с моей тарелки.