Intereting Posts
Как искать пользователей на основе добавленных метаданных пользователя Скрыть div, когда пользовательское поле пуст Как WordPress определяет, какой многоуровневый пользователь включен в URL? Как настроить fail2ban с помощью WordFence? WooCommerce – получать продукты из категории перед удалением категории Сломанные URL-адреса с http-сайтом и https wp-admin Установите поддомены в следующем шаге Список способов доступа к базе данных WordPress? Dukapress jQuery ("form.product_update"). Livequery не является функцией Переадресация http на https с помощью WordPress в IIS Как внести изменения в уже опубликованную почту в проект Как получить идентификатор срока таксономии? Как добавить класс в сообщение по пользовательской роли автора Как отображать ID видео Youtube / Vimeo в пользовательском типе сообщений, когда пользователь вводит его в пользовательский мета-ящик? Получение комментария

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

Кто-нибудь знает, как добавить код в файл 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; ?>