! Запросто с WordPress - доступная ручная работа по правилам оптимального интернета

Здравствуйте ! (извините за рекламу...)
написано: — 
отредактировано: 2018-10-26
издатель:  в теме: HTML-CSS-PHP всякое полезное вопрос в тему
 
Запросто с WordPress - студия ATs media fashion Reception WordPress golden

Как ограничить длину комментария — настройки поместим в админке WP…

Решение вопроса:

…ограничим длину комментария в стандартной форме комментирования Вордпресс! Как это работает? если, например, комментатор решил прокомментировать некую статью нашего сайта, то, набирая текст, будет ограничен в количестве символов. То есть — если текст будет слишком короток (длина задаётся в настройках), либо слишком длинный — комментатор, при клике на кнопку «Отправить», будет переправлен на страницу ошибки, где ему будет предложено поправить текст в соответствии с ограничениями длины комментария…

Все настройки функции ограничения длины комментирования будут выведены в настройки админки в раздел «Настройки» — это удобнее, нежели время от времени копаться в коде…

1 — создадим файл. 2 — подключим его в файле функций. Всё!


 

 

ограничение длины комментария Вордпресс

 

 

 

В итоге наших правок, в админке, в разделе «Настройки», появится новая ссылка (опция) «Обсуждения: размер комментария», перейдя по которой, откроется страница настроек, где мы запросто сможем задать (по количеству символов) длину комментария (скриншот стр. настроек в финале статьи).

 

 

 

для комментариев

 

 

 

 

Нота:

 

В подобных случаях редактирования активного шаблона, я всегда рекомендую создать в корне шаблона отдельную папку, в которую же будут помещены какие-то необходимые файлы, так сказать, по темам. …ну, чтобы не захламлять основной файл функций (functions.php)… не путаться дабы.

 

Как поместить какие-то объёмные функции в отдельные файлы шаблона, описано в этой статье.

 

А ещё лучше поступить так — если вы планируете часто менять шаблоны сайта — создайте отдельный плагин: в этом случае, как догадываетесь, помещённый в плагин функционал остаётся при смене шаблона активным!

 

 

 

 

Итак, приступим…

 

 

 

к оглавлению $

как ограничить длину комментария — функция

 

 

 

 

1 — создаём в корне ШАБЛОНА папку с именем, скажем, my-functions

 

2 — создадим произвольный файл, к примеру, с таким именем edit-my-comment.php и поместим его в созданную папку…

 

Как только папка и файл созданы, заходим в эту созданную папку и открываем новый файл edit-my-comment.php.

 

В этот файл помещаем такую функцию:

 

 

код подробнее...

<?php
/**
* Function that adds settings page in the menu - ДОБАВИТЬ В ФАЙЛ ФУНКЦИЙ: include_once "my-functions/edit-my-comment.php"; // размер МАКСИМАЛЬНО/МИНИМАЛЬНЫХ комментариев
*/
$atss_edit_comment = 'edit-co-ats.php';
// it's part of the URL of the page
add_action('admin_menu', 'ats_edit_options_comm');
function ats_edit_options_comm() {
global $atss_edit_comment;
add_options_page( 'Обсуждения: размер комментария', 'Обсуждения: размер комментария', 'manage_options', $atss_edit_comment, 'edit_option_comment'); // add_options_page() — раздел Настройки, раздел Комментарии - add_comments_page
}
/**
* This return function (Callback)
*/
function edit_option_comment(){
global $atss_edit_comment;
?><div class="wrap">
<h2>Параметры размера комментаториев:</h2>
<form method="post" enctype="multipart/form-data" action="options.php">
<?php
settings_fields('ats_edit_options_comm');
do_settings_sections($atss_edit_comment);
?>
<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
</form></div><?php
}
/*********************************** ************** */
// Create text
add_action( 'admin_init', 'ats_edit_settings_textr' );
function ats_edit_settings_textr() {

global $atss_edit_comment;

register_setting( 'ats_edit_options_comm', 'ats_edit_options_comm', 'atses_validate_settings' );
// Added section and
add_settings_section( 'atss_section_comm_edit', '<br />Поместите в поля ниже значения размеров комментария, которых должен придерживаться комментатор:', '', $atss_edit_comment );
// atss_section_comm_edit - id секции
$atssys_edit_field_params = array(
'type' => 'text',
'id' => 'atsy_text_comm_edit'
);
//- ЭТО ЕСЛИ ПОКАЗЫВАТЬ ДАННЫЕ В АДМИНКЕ - echo '<br />';
//echo $als_options['atsy_text_comm_edit'];
add_settings_field( 'atsy_texter_field_none', '<br /><br /><br /><br />Введите цифровое значение:', 'atssys_option_display_settings_edit', $atss_edit_comment, 'atss_section_comm_edit', $atssys_edit_field_params );
}
// text function
function atssys_option_display_settings_edit($args) {
extract( $args );
$option_name = 'ats_edit_options_comm';
$o = get_option( $option_name );
switch ( $type ) {
case 'text':
$o[$id] = esc_attr( stripslashes($o[$id]) );
$current_user = wp_get_current_user();
echo "Здравствуйте&nbsp;";
echo '' . $current_user->display_name . '&nbsp;!&nbsp;&mdash;&nbsp;';
echo 'Ваше сообщение комментаторам сайта, например: <br /><span style="font-weight: 700;color: #038900;font-style: italic;"><b>Задайте размер комментария —<br />максимальное количество смволов:</b></span>';
$als_options = get_option('ats_edit_options_comm');
echo "<?php _e('Save Changes') ?>";
echo "<br /><br />";
echo "<textarea placeholder=' Ваше сообщение...' class='code large-text' cols='50' rows='2' type='text' id='$id' name='" . $option_name . "[$id]' >$o[$id]</textarea>";
echo ($desc != '') ? "<br /><br /><span class='description'>$desc</span>" : "";
} }
// fin news text function
/*************************** *************************************/
// Create 2 text
add_action( 'admin_init', 'ats_edit_settings_textcom' );
function ats_edit_settings_textcom() {
//
global $atss_edit_comment;
//
register_setting( 'ats_edit_options_comm', 'ats_edit_options_comm', 'atses_validate_settings' );
// Added section and
add_settings_section( 'atss_section_comms_edit', '', '', $atss_edit_comment );
// atss_section_comms_edit - id секции
$atssyse_edit_field_params = array(
'type' => 'text',
'id' => 'atsys_text_comm_edit',
'desc' => '...если минимальный/максимальный размеры комментария указаны, <span style="font-weight: 700;color: #038900;font-style: italic;">то комментатор будет обязан придерживаться этих параметров </span>'
);
add_settings_field( 'atsy_texter_field_none22', '<br /><br />Введите цифровое значение:', 'atssysysy_option_display_settings_edit', $atss_edit_comment, 'atss_section_comms_edit', $atssyse_edit_field_params );
}
// text function
function atssysysy_option_display_settings_edit($args) {
extract( $args );
$option_name = 'ats_edit_options_comm';
$o = get_option( $option_name );
switch ( $type ) {
case 'text':
$o[$id] = esc_attr( stripslashes($o[$id]) );
$current_user = wp_get_current_user();
// можно добавить ПРИВЕТСТВИЕ АДМИНА:
echo '<span style="font-weight: 700;color: #038900;font-style: italic;"><b>...минимальное количество смволов:</b></span>';
$als_options = get_option('ats_edit_options_comm');
echo "<?php _e('Save Changes') ?>";
echo "<br /><br />";
echo "<textarea placeholder=' Ваше сообщение...' class='code large-text' cols='50' rows='2' type='text' id='$id' name='" . $option_name . "[$id]' >$o[$id]</textarea>";
echo ($desc != '') ? "<br /><br /><span class='description'>$desc</span>" : "";
} }
// fin news text function
// ******************** **********************
add_filter( 'preprocess_comment', 'wavelength_comm_comment' );
function wavelength_comm_comment($comment) {
$als_options = get_option('ats_edit_options_comm');
$atsd = $als_options['atsy_text_comm_edit'];          // это для МАКСИНМУМ символов
$csmssss = $als_options['atsys_text_comm_edit'];      // это для МИНИМУМ символов
//echo $als_options['atsy_text_comm_edit'];           // это вывод в СООБЩЕНИЕ КОММЕНТАТОРУ на странице ошибки
//echo "<br />";
//echo $als_options['atsys_text_comm_edit'];          // это вывод в СООБЩЕНИЕ КОММЕНТАТОРУ на странице ошибки

if ( strlen( $comment['comment_content'] ) > $als_options['atsy_text_comm_edit'] ) {
wp_die("Комментарий слишком длинный. Пожалуйста, пишите комментарии длиной не более $atsd символов.<br /><a href='javascript:history.go(-1);'>˂ вернуться назад и отредактировать комментарий</a>");
}
if ( strlen( $comment['comment_content'] ) < $als_options['atsys_text_comm_edit'] ) {
wp_die("Комментарий слишком короткий. Пожалуйста, напишите не менее $csmssss символов.<br /><a href='javascript:history.go(-1);'>˂ вернуться назад и отредактировать комментарий</a>");
}
return $comment;
}


 

Этот код выше (его функционал) включает в себя всё: и функцию обработки страницы настроек, и небольшой фрагмент кода, отвечающий за, скажем так, организацию лимитов длины комментария.

 

В комментариях к коду я старался дать все необходимые пояснения. Но если что вам не ясно, задавайте вопросы в комментариях…

 

 

 

 

к оглавлению $

завершающий этап настроек функционала ограничения длины комментария

 

 

 

 

подключение (инициализация) созданного файла:

 

 

…для того, чтобы подключить созданный файл edit-my-comment.php, — то есть, чтобы ограничение длины комментария вступили в силу — открываем файл функций functions.php активного шаблона и добавляем такую строку:

 

 

include_once "my-functions/edit-my-comment.php"; // размер МАКСИМАЛЬНО/МИНИМАЛЬНЫХ комментариев

 

 

Место прописки строки произвольное, однако, в скобках скажу: обычно подобные строки подключают где-то в старте файла.

 

 

 

 

А если вы создаёте отдельный плагин ограничения длины комментария, то вернитесь к статье по ссылке выше, и изучите как создать собственный плагин — все плюсы этого предприятия!

 

 

 

 

Ну, что ж… к только все данные выше шаги будут выполнены, у вас в админке (в разделе настроек) появится опция (ссылка) ведущая на страницу регулировки «Параметры размера комментария».

 

 

 

ограничить длину комментария

 

 

 

 

Нам с вами только и останется что задать требуемую величину длины комментария в «максимальное количество символов:» и «минимальное количество символов:».

 

 

Всё! готово дело…

 

 


...А мне остаётся только раскланяться... и пожелать полезной работы в сети

 

 

…если что осталось непонятным, задавайте вопросы…

 

 


...вопросы в комментариях - помогу, в чём дюжу...
mihalica.ru !
автор блога запросто с Вордпресс - Михаил ATs - в сети нтернет давным давно...

...веб разработчик: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...

Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!
 ! самое читаемое:
   Как исключить вывод (выборочно) поста с главной страницы сайта — регулировка в админке   Как самостоятельно установить в Notepad++ плагин Compare   Выведем последние комментарии в любом месте сайта — несколько вариантов   Яндекс ИКС — новый индекс качества сайта, заместо ТИЦ   Санкции вебмастера Яндекс (фатальные ошибки) — предупреждения, или что это?..   Продвижение контентом или нужно настраивать сайт — валидный код шаблона..?   Создаём плагин — добавочный файл функций — my-functions.php   Подключение jQuery библиотеки от CDN Google — рационально!..   Включаем обслуживание gzip сжатия файлов на хостинге и в htaccess   Убираем циклическую ссылку h1 логотипа на главной странице   Как к статье добавить блок ссылок на похожие по теме записи сайта   Уже в этом году WordPress потребует от пользователей протокол HTTPS   Что такое Яндекс? SEO оптимизация сайта за пределами Google   Как перевести сайт на https — сертификат ssl — шифрование
↔ перетаскивайте ленту ↔

смотреть ещё статьи в теме HTML-CSS-PHP всякое полезное
меточная навигация:


Комментарии © 0 к статье: Как ограничить длину комментария — настройки поместим в админке WP…

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

Внимание! Обязательные поля помечены *

  отныне доступен плагин: privacy-policy ©

 необходимо принять правила конфиденциальности и пользовательского соглашения
Яндекс.Метрика
? основная линейка услугSkype консультацияЕсли вы выбрали для своего сайта WordPress и только-только начинаете изучать панель управления контентом, то этот вариант оnline консультаций — практически по любым вопросам — для вас! вопросы сюдаSkype онлайн