Intereting Posts
Почему некоторые пользовательские файлы javascript работают, но некоторые из них не являются Есть ли плагин WordPress, который можно отправлять в Google+? Добавить Wrapper с классом в WYSIWYG Editor Как добавить новую строку в выдержку? пользовательский тип сообщения против условного отображения метабоксов для определенных условий? Изменение настроек по умолчанию, используемых коротким кодом галереи Как изменить меню администратора «Страницы» на что-то еще Пользовательская форма входа для пользователя-пользователя, а также администратора Как добавить песни на мой сайт WordPress? Как вставить массив терминов с помощью wp_insert_term? wp_set_object_terms не работает в functions.php с пользовательской таксономией URL-адрес перенаправляется в дом, там нет страницы или типа сообщения, как я могу отключить его? Установка шаблона WordPress по умолчанию Несколько сайтов WP-сайтов на одном сервере – доля базы WP? Вопрос о многоуровневой функции WP

Ограничить количество слов тегов

Я хочу ограничить пользователя вводить post_tag только слова из двух не более того. Если какой-либо из тегов больше двух слов, пользовательский канот публикует сообщение.

Мне нужно использовать эту функцию для подсчета слов.

function count_words( $text ) { $text2 = preg_replace( '/<.[^<>]*?>/', ' ', $text ); $text2 = preg_replace( '/&nbsp;| /i', ' ', $text2 ); $text2 = preg_replace( '/[0-9.(),;:!?%#$¿\'"_+=\\/-]*/', '', $text2 ); $text2 = trim( $text2 ); if ( $text2 == '' ) { $count = 0; } else { $count = preg_match_all( '/\S\s+/', $text2, $matches ); if ( $count !== false ) { $count += 1; } else { $count = -1; // Error! } } return $count; } 

этот плагин https://wordpress.org/plugins/wypiekacz/ имеет несколько правил, но не число слов. Как я могу это сделать?

Используйте фильтр pre_insert_term :

 function wpse_189722_limit_tag_words( $term, $taxonomy ) { if ( $taxonomy === 'post_tag' ) { if ( count( preg_split( '/\s+/', trim( $term ) ) ) > 2 ) $term = new WP_Error( 'term_too_many_words', 'Maximum of 2 words' ); } return $term; } add_filter( 'pre_insert_term', 'wpse_189722_limit_tag_words', 10, 2 );