Пользовательские типы постов: как избавиться от редактора (-мета)

9

Я спрашиваю, как я могу избавиться от постредактора (visual + html). Я пытался не регистрировать поддержку типов записей, и она все еще появляется (отмена регистрации отлично работает со всеми другими мета-боксами по умолчанию на экране редактирования записей). Я также попытался отменить регистрацию с помощью remove_meta_box, который тоже не работал (работает для всего остального, кроме мета-блока заголовка). Может быть, я что-то упустил. Уже искал в интернете и ничего не смог найти. Я надеюсь, что кто-то может сказать мне. Спасибо!

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

(Версия для Wordpress 3.0.4.)

кайзер
источник

Ответы:

17

Предоставление пустого массива для «support» в объявлении типа записи должно избавить от редактора и заголовка, а также от любого другого поля по умолчанию на странице редактирования сообщения.

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

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

Мэнни Флермонд
источник
Пока спасибо. Моя проблема в том, что я не могу установить все пустым. Я написал три класса, чтобы ускорить создание пользовательских типов записей, пользовательских таксономий и тегов. Они получили значения по умолчанию. В случае пользовательских типов сообщений это просто все. Но мне нужно отменить регистрацию некоторых ящиков для определенных типов записей. И для одного мне нужно отменить регистрацию окна редактора тоже.
Кайзер
Я заинтересован в том, что вы имеете в виду, устанавливая все пустым? Если вы хотите избавиться от редактора, просто не вставляйте; editor 'в массив' Support 'при создании типа записи в вашем классе.
Мэнни Флермонд
2
@ kaiser, если это твои собственные классы, в чем проблема?
Заставить
@Rarst: это только база, которая делает следующие вещи: регистрирует типы записей и таксономии из массива и предлагает фильтр для $ label и $ args (по умолчанию и специфично). Класс терминов генерирует только не удаляемые термины, которые обновляются и присваиваются из массива. Мета-боксы могут быть легко без класса, и для меня не имеет смысла интегрироваться. Классы существуют только для того, чтобы сэкономить мне время и удержать клиентов от удаления терминов, необходимых системе. Но спасибо за поиск. Ваша помощь высоко ценится (снова) :)
Кайзер
2
@kaiser тогда в чем проблема с установкой supportsпустого массива через фильтр?
Первый
15

Если вы не передаете ничего для supportsаргумента, настройки по умолчанию для 'title', 'editor'используются (где «ничего» не все , что есть empty()).

Однако, подобно тому, как вы можете добавить поддержку чего-либо после регистрации типа записи в add_post_type_support( $post_type, $feature ), вы можете удалить поддержку чего-либо, позвонив remove_post_type_support( $post_type, $feature ). Таким образом, вызов этого после регистрации вашего типа сообщения должен удалить редактор:

remove_post_type_support( 'my_post_type', 'editor' );

Эти функции просто манипулируют глобальной $_wp_post_type_featuresпеременной, но всегда лучше делать это с API-функциями, чем возиться с ней самостоятельно.

Ян Фабри
источник
Гуманный! Я всегда думал, что это просто удалить бывших. миниатюры или nav_menu через дочернюю тему. Большое спасибо!
Кайзер
1
Я пропустил это. Хорошая точка зрения: пропуск пустого массива приведет к пустоте ... Передача пустых значений - это всегда такой беспорядок, это противоречит интуиции, поэтому обрабатывается как значение по умолчанию, а не как ничего . :(
Первое
1
@Rarst: Я думаю, что это также сработает, если вы передадите фиктивное имя функции. Это просто ключ массива, поэтому не имеет значения, вставляются ли фиктивные данные. Однажды0.10 я использовал вместо параметра для empty()проверки.
Ян Фабри
1
@Jan Фабри, да, просто я не первый раз наступил на себя empty(). Как и выше - очень нелогично.
Первый
Гектометр Он не работает с ключами, и поэтому я думаю, что «фиктивные значения» могут стать еще одним «моим» при обновлении позже (попробуйте найти неверное значение). В любом случае: большое спасибо вам обоим! :) Редактировать: было бы удобно, если бы значения были не просто там, а парами ключ / значение. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
Кайзер
2

Я использую плагин Custom Post Type UI для создания пользовательских типов записей. Используя этот плагин, вы можете отключить постредактор в разделе дополнительных параметров.

Управление типом сообщения -> Просмотр дополнительных параметров

Вот ссылка на плагин: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - Это позволяет отключить поле заголовка тоже :)

Carson
источник
Как сказано выше, я написал три класса и поэтому не могу переключиться на плагин. Я имею в виду, я бы даже не подумал об использовании плагина в любом случае. Плагины (IMO) предназначены для разработки или легко взаимозаменяемых вещей, таких как формы комментариев, а не для основных вещей, таких как типы записей или таксономии. Спасибо, в любом случае!
Кайзер
1
На самом деле плагины могут настраивать практически все, что касается Wordpress, включая пользовательские типы записей. Сейчас я создаю плагин, который создает множество типов записей, их метабоксы и различные настраиваемые поля.
Мэнни Флермонд
@Manny Fleurmond: Если вы собираетесь поделиться, пожалуйста, напишите мне ссылку. Я все еще думаю о том, что, может быть, может быть, написать рутину для продвинутых метабоксов в моих классах.
Кайзер
0

Проверьте register_post_type (); в кодексе. В разделе « Аргументы » прокрутите вниз, пока не увидите « Поддержки» .

Начиная с 3.5, логическое значение falseможет быть передано как значение вместо массива, чтобы предотвратить поведение по умолчанию (заголовок и редактор).

Или настройте свой собственный тип записи, как вы хотите, добавив значения, которые вы хотите, например:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

Эти поддерживаемые опции в моем массиве появятся в моем бэкэнде WordPress

Gothburz
источник
-2

Вы также можете установить стиль для страницы редактирования администратора, чтобы скрыть некоторые элементы, такие как редактор и т. Д.

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');
romapad
источник
Спасибо за ваш ответ, но это (а) сделает его несъемным, поскольку он не зарегистрирован в API зависимостей, и (б) сделает его доступным для людей, которые знают, как использовать инструменты разработчика браузеров.
Кайзер