Intereting Posts
wp_editor не работает в передней части Динамически регистрировать боковые панели для каждой страницы верхнего уровня фоновое изображение в сообщении с изображениями сверху Сделать более подробным переключением в the_content на одном продукте в Woocoomerce do_shortcode не работает на некоторых страницах Как создать виртуальные страницы с информацией из полей мета-профиля пользователя? Сообщение «Представление из интерфейса с пользовательским полем не работает» register_nav_menus () не будет регистрировать меню Custom Post Type Archive – archive.php присутствует, но он не используется WordPress multisite, позволяют не супер администраторам создавать сайты Сортировка по дате не работает? Перенаправление на другой шаблон, отличный от single-custompost.php Как использовать get_posts и get_the_post_thumbnail Out the Loop Пользовательские постоянные ссылки не работают на Nginx + Apache Предотвратите загрузку других версий jquery на статическую главную страницу

Установить заголовок сообщения, основанный на первом элементе h2 в разделе содержимого

У меня есть редактор интерфейсов, созданный для пользователей для создания сообщений, и я хотел бы сделать его максимально простым для создания сообщений с наименьшим количеством задействованных полей. Возможно ли создать заголовок сообщения на основе первого элемента h2, который появляется в поле содержимого? Как мне это сделать?

Если вы можете справиться с этим на стороне PHP, вы можете вытащить теги h2 из контента, используя регулярное выражение .

PHP-версия

Тестовый контент

 $content = "<h2>This is H2 Content</h2><p>This is p content</p>Random Content<h2>This is another H2 section</h2><b><h2>This the third H2 section</h2></b>"; 

Возьмите любой текст внутри H2s

 preg_match_all('#<h2>(.*?)</h2>#', $content, $matches); // Merge the first 2 matches $potential_title = implode ( ' - ', array_slice($matches[0], 0, 2)); 

Если у нас есть что-то …

 if( ! empty ( $potential_title ) ) { 

Удалите любой HTML из оставшегося содержимого

  $cleaner_title = strip_tags( $potential_title ); 

Подготовить обновление заголовка сообщения

  $my_post_updates = array( 'ID' => $post_id, 'post_title' => $cleaner_title, ); // Update the post into the database wp_update_post( $my_post_updates ); } 

JS VERSION

Версия этого Javascript аналогична, вам просто нужно будет перехватить отправку формы, захватить контент, проанализировать результаты, а затем передать данные.

Это просто предупреждает результат анализа содержимого теста.

 // test content var content = "<h2>This is H2 Content</h2><p>This is PPP content</p>Random Content<h2>This is another H2 section</h2><b><h2>This the third H2 section</h2></b>"; // variables to store regEx results. var match, regex = /<h2>(.*?)<\/h2>/ig, matches = []; // get all the matches and put in array while (match = regex.exec(content)) { matches.push( match[1] ); } // if we have any... if( matches.length ) { // pull the first 2 and join them together var title = matches.slice ( 0, 2 ).join ( ' - ' ); // send this along with your form submission alert(title); }