Intereting Posts
Мой цикл случайных сообщений затягивается комментариями указанной случайной записи Создание шаблона страницы без файлов в функции. Хотите добавить свой пользовательский запрос подготовки, но add_filter не запускается Как сохранить разрывы строк из текстовых полей профиля пользователя Можно ли динамически регистрировать меню? Изменение роли пользователя после массового импорта Как переопределить регистрацию WordPress и вставить автоматически сгенерированное имя пользователя? Как сделать, чтобы на моей главной странице отображался только последний липкий пост, а также обычные виджеты? Любая идея, почему Google не кэширует мой сайт? Привет плагин типа dolly, который позволяет людям добавлять свои собственные Как получить значение через get_option, когда параметр_value хранится в многомерном массиве? Syling Custom Fields echo from from functions.php Отображать категорию сообщения в цикле foreach с ссылкой категории Заказ пользовательского почтового типа по пользовательскому полю без заголовка Что касается «Вставить ошибку запроса» в wordpress

Требовать титул для страниц

Есть ли способ заставить пользователей писать заголовок страницы перед публикацией? Я нашел пример требуемых заголовков, но не названий страниц.

Начните с загрузки плагина под названием Force Post Title .

Вот плагин с одной строкой (2 с линией комментариев), добавленной в нижней части, на основе наших комментариев.

Случается, что небольшой скрипт jQuery добавляется на страницу Создать сообщение / страницу . Сценарий проверяет, пусто ли поле заголовка, когда пользователь нажимает кнопку отправки.

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

Я должен также упомянуть, что нашел что-то (фильтр), которое может работать в wp-includes / post.php, строка 2489 . Однако я сделал небольшое тестирование без каких-либо результатов.

/* Plugin Name: Force Post Title Plugin URI: http://appinstore.com Description: Forces user to assign a Title to a post before publishing Author: Jatinder Pal Singh Version: 0.1 Author URI: http://appinstore.com/ */ function force_post_title_init() { wp_enqueue_script('jquery'); } function force_post_title() { echo "<script type='text/javascript'>\n"; echo " jQuery('#publish').click(function(){ var testervar = jQuery('[id^=\"titlediv\"]') .find('#title'); if (testervar.val().length < 1) { jQuery('[id^=\"titlediv\"]').css('background', '#F96'); setTimeout(\"jQuery('#ajax-loading').css('visibility', 'hidden');\", 100); alert('POST TITLE is required'); setTimeout(\"jQuery('#publish').removeClass('button-primary-disabled');\", 100); return false; } }); "; echo "</script>\n"; } add_action('admin_init', 'force_post_title_init'); add_action('edit_form_advanced', 'force_post_title'); // Add this row below to get the same functionality for page creations. add_action('edit_page_form', 'force_post_title'); 

Я просто изменил @hampusn немного, чтобы сделать интеграцию лучше. Вместо того, чтобы использовать alert() он помещает красиво отформатированное поле под заголовком.

Он обертывает код jQuery стандартной функцией .ready() .

Я также хотел сделать это только для определенного типа сообщений, поэтому я оставил фрагмент, но вы можете просто удалить проверку $post_type если будущим читателям это не понадобится.

Наконец, я завернул сообщение проверки в _() . Теоретически вы можете настроить этот тип для каждого типа сообщений, если хотите переназначить его в основной инструкции if .

 function rtp_force_post_title_init() { wp_enqueue_script('jquery'); } function rtp_force_post_title( $post ) { $post_type = get_post_type(); $validation_message = _("The title field must be filled out."); if('exhibitor' === $post_type) { echo "<script type='text/javascript'>\n"; echo " jQuery( document ).ready(function() { jQuery('#publish').click(function(){ var testervar = jQuery('[id^=\"titlediv\"]').find('#title'); if (testervar.val().length < 1) { setTimeout(\"jQuery('#ajax-loading').css('visibility', 'hidden');\", 100); var validator_snippet = '<div style=\"padding: 10px; color: #fff; margin-top: -3px; background: #F55E4F;\">" . $validation_message . "</div>'; jQuery('[id^=\"titlediv\"]').find('#titlewrap').append(validator_snippet); setTimeout(\"jQuery('#publish').removeClass('button-primary-disabled');\", 100); return false; } }); });\n"; echo "</script>\n"; } } add_action( 'admin_init', 'rtp_force_post_title_init' ); add_action( 'edit_form_after_title', 'rtp_force_post_title' );