Intereting Posts
Получить URL-адрес текущих пользователей? WordPress Code Snippet для подсчета сообщений по автору Показать кнопки общего доступа и комментарии к Facebook В диалоговом окне «Модифицированный лайтбокс» (наложение изображений)? Метабокс с флажком не обновляется Как создать сообщение со следующими кнопками Получать пользователей в запросе и ограничивать вывод пользователя до пяти в случайном порядке Показать тип персонализированного типа категории X на странице архива категории X? Как добавить изображения в таксономические термины? Как капитализировать записи в блоке таксономии? Возвращаемый пользователь Мета текст в качестве ссылок на редактирование сообщений внутри столбцов пользователя Как остановить мобильную тему, наследующую меню навигации на рабочем столе? Получать смещение заслонки post posts / posts на одной странице (вне цикла) Как редактировать текст, отображаемый на вкладке моего браузера? Отображение данных профиля пользователя на лицевой панели add_post_meta | update_post_meta | Через интерфейс

Как вы можете быть уверены, что записи авторов более 250 слов?

Я создаю сайт, на котором авторы могут подписываться и писать статьи. Однако я не хочу, чтобы сообщения низкого качества были отправлены. Итак, во-первых, я хочу, чтобы сообщения были пустыми и длиннее 250 слов.

Итак, что-то вроде:

if (empty($post) && $post < 250) { echo 'Error, must be longer than 250 words'; } 

Очевидно, что этот код не будет работать, но это общее представление о том, чего я хочу. Однако я не уверен, как это сделать. Их использование в WordPress?

Solutions Collecting From Web of "Как вы можете быть уверены, что записи авторов более 250 слов?"

Не допускайте публикации автором слишком короткого контента:

Вот одна идея, использующая пользовательский статус сообщения, например short :

 /** * Register a custom 'short' post status * * @see http://wordpress.stackexchange.com/a/159044/26350 */ function wpse_short_post_status() { register_post_status( 'short', array( 'label' => _x( 'Short', 'post' ), 'public' => false, 'exclude_from_search' => true, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Short <span class="count">(%s)</span>', 'Short <span class="count">(%s)</span>' ) ) ); } add_action( 'init', 'wpse_short_post_status' ); 

Затем мы можем просмотреть все сообщения с слишком коротким содержанием здесь:

 /wp-admin/edit.php?post_status=short&post_type=post 

с дополнительной вкладкой:

Статус коротких сообщений

Чтобы авторы не публиковали сообщения с слишком коротким контентом, мы можем использовать фильтр wp_insert_post_data :

 /** * Prevent authors from publishing posts with too short content. * * @see http://wordpress.stackexchange.com/a/159044/26350 */ function wpse_prevent_short_content( $data , $postarr ) { // Editors and admins can publish all posts: if( current_user_can( 'edit_others_posts' ) ) return $data; // Authors can't publish posts with too short content: $wordcount = count( explode( ' ', strip_tags( $data['post_content'] ) ) ); if( 'publish' === $data['post_status'] && $wordcount <= 250 ) $data['post_status'] = 'short'; return $data; } add_filter( 'wp_insert_post_data', 'wpse_prevent_short_content', PHP_INT_MAX, 2 ); 

где мы принудительно возвращаем статус публикации на публикацию .

Мы можем использовать это, чтобы предупредить пользователя о том, что содержимое слишком короткое:

 /** * Display a too short content warning. * * @see http://wordpress.stackexchange.com/a/159044/26350 */ function wpse_admin_notice() { $screen = get_current_screen(); if( 'post' === $screen->base && 'post' === $screen->id && 'short' === $GLOBALS['post']->post_status && ! current_user_can( 'edit_others_posts' ) ) { printf( '<div class="error"><p>%s</p></div><style>#message{display:none;}</style>', __( 'Warning: Post not published - the content must exceed 250 words!' ) ); } } add_action( 'admin_notices', 'wpse_admin_notice' ); 

Вот скриншот предупреждения:

Предупреждение


Надеюсь, вы можете изменить это на свои нужды, например, если вам это нужно для других типов сообщений, кроме сообщений .