Intereting Posts
Получите мою сессию сайта в WordPress? Включить изменения для настраиваемого типа сообщений Список содержимого всего блога Включая контент из устаревшего приложения: через плагин или пользовательский контент? Wordspress добавляет <p> в мои javascripts Исключить сообщения из виджета Как изменить вложение вложений с имени на id add_rewrite_rule не будет работать BuddyPress – Доступен крючок для скрытия персонализированной даты рождения в общедоступном профиле? Визуальная компоновка аддона загружает javascript / css только на страницах с помощью аддона Неверный порядок вывода при смешивании WP_CLI :: API и php-cli-tools Способ сделать окончательно статический заброшенный блог WP Редактирование встроенного ярлыка галереи для фильтрации по категориям Как я могу использовать загрузчик мультимедиа для добавления нескольких изображений в бэкэнд-галерею? Довольно URL для персонализированной фильтрации продуктов

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

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