Intereting Posts
RSS-каналы и WordPress? Контактный формуляр 7 – Добавить текст информации к флажкам / Radiobuttons Создание заголовка видео в WordPress только на главной странице Category.php загружает сначала до page.php? Невозможно загрузить результаты поиска с помощью ajax Google не может выполнять поиск на моем сайте Показать сообщения от одной категории не работает Как изменить порядок (ASC и DESC) в следующем методе поиска с использованием WP_Query? WPDB Подготовлено удаление Измените функцию, чтобы принять начальный аргумент и нет изображений Может ли WordPress запускаться в корне существующего php-сайта без темы на index.php, но все остальные записи / страницы WP? Лучший способ создать страницы участников для веб-сайта лаборатории? Невозможно изменить информацию заголовка при попытке моего сайта с помощью www Почему бы не сменить дочернюю тему на обычную тему, пропустить шаблон? ошибка Действия в соответствии с типом и размером изображения

Принуждение всех сообщений, связанных с типом персонализированного сообщения,

Кто-нибудь знает, как добавить код в файл functions.php, который автоматически заставит все сообщения, принадлежащие персонализированному типу сообщений, быть «частным» и / или «защищенным паролем» с набором пароля по умолчанию?

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

Solutions Collecting From Web of "Принуждение всех сообщений, связанных с типом персонализированного сообщения,"

Вы можете подключиться к save_post , wp_insert_post или wp_insert_post_data чтобы изменить объект сообщения до того, как он будет вставлен или сохранен.

Используя save_post или wp_insert_post обратный вызов должен был бы объявить два аргумента и получить объект post как вторую входящую переменную .. (и я покажу вам, чтобы вы рассматривали альтернативы, пример TheDeadMedic был бы прекрасен).

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

Вам понадобятся две функции: одна для изменения объектов post во время сохранения / вставки и одна для установки значений по умолчанию post post, вот пример двух необходимых функций (опять же, отметив, что вы можете поменять мой обратный вызов save_post для примера, уже заданного TheDeadMedic).

 add_action( 'save_post', 'check_type_values', 10, 2 ); function check_type_values( $post_id, $post ) { if( $post->post_type ) switch( $post->post_type ) { case 'my_custom_type': $post->post_status = 'private'; $post->post_password = ( '' == $post->post_password ) ? 'some_default_when_no_password' : $post->post_password; break; } return; } add_filter( 'default_content', 'set_default_values', 10, 2 ); function set_default_values( $post_content, $post ) { if( $post->post_type ) switch( $post->post_type ) { case 'my_custom_type': $post->post_status = 'private'; $post->post_password = 'some_default_password'; break; } return $post_content; } 

Надеюсь, это поможет…

 function force_type_private($post) { if ($post['post_type'] != 'my_post_type' || $post['post_status'] == 'trash') return $post; $post['post_password'] = 'my password'; $post['post_status'] = 'private'; return $post; } add_filter('wp_insert_post_data', 'force_type_private'); 

Не могли бы мы просто создать страницу шаблона для персонализированного типа сообщения и проверить, является ли пользователь зарегистрированным и проверить, является ли пользователь определенной ролью? Возьмем, например, вы хотите иметь пост-тип, который должен быть просмотрен администраторами:

 <?php if ( is_user_logged_in() && is_admin() ) : if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php the_content(); ?> <?php endwhile; endif; endif; ?>