Комментарии — очень важный аспект блога, потому что именно там читатели взаимодействуют с блоггером. В сегодняшней статье я покажу вам множество фрагментов, хаков и советов по WordPress для улучшения раздела комментариев в блоге.
Разрешить больше HTML-тегов в комментариях WordPress
По умолчанию WordPress позволяет комментаторам использовать некоторые теги HTML в текстовой области комментария. Но, в зависимости от вашего блога, вы можете разрешить использование большего количества тегов.
Для этого просто вставьте приведенный ниже код в ваш functions.php
файл. Список разрешенных тегов можно изменить в строке 4.
// Create function which allows more tags within comments function allow_pres() { global $allowedtags; $allowedtags['pre'] = array('class'=>array()); } // Add WordPress hook to use the function add_action('comment_post', 'allow_pres');
»Источник: http://davidwalsh.name/wordpress-comment-tags
Удалить автолинки в комментариях
Когда комментатор вставляет URL-ссылку в форму комментария, WordPress автоматически преобразует ее в гипертекстовую ссылку. Это хорошо в большинстве случаев, но лично мне это не нравится, так как многие люди использовали мои комментарии в блогах для рекламы своих собственных продуктов и услуг.
Удалить автолинки в комментариях очень просто: просто вставьте строку кода ниже в ваш functions.php
файл.
remove_filter('comment_text', 'make_clickable', 9);
»Источник: http://www.wprecipes.com/wordpress-hack-remove-autolinks-in-comments
Удалите поле URL из формы комментариев WordPress
Если вы не хотите, чтобы ваши комментаторы могли вводить URL своего веб-сайта, вот фрагмент, чтобы удалить поле URL из формы комментариев WordPress.
Просто вставьте приведенный ниже код в свой functions.php
файл, сохраните его, и все готово.
function remove_comment_fields($fields) { unset($fields['url']); return $fields; } add_filter('comment_form_default_fields','remove_comment_fields');
»Источник: http://wp.tutsplus.com/tutorials/creative-coding/customizing-comments…
Добавьте больше полей в форму комментариев
Я только что показал вам, как удалить поле из формы комментария, но что теперь, если вы хотите добавить новое поле в форму? Следующий пример добавит новое поле для комментатора, чтобы добавить его возраст.
Начнем с добавления поля. Для этого скопируйте приведенный ниже код и вставьте его в свой functions.php
файл:
function add_comment_fields($fields) { $fields['age'] = '<p class="comment-form-age"><label for="age">' . __( 'Age' ) . '</label>' . '<input id="age" name="age" type="text" size="30" /></p>'; return $fields; } add_filter('comment_form_default_fields','add_comment_fields'); function add_comment_meta_values($comment_id) { if(isset($_POST['age'])) { $age = wp_filter_nohtml_kses($_POST['age']); add_comment_meta($comment_id, 'age', $age, false); } } add_action ('comment_post', 'add_comment_meta_values', 1);
Теперь, чтобы отобразить возраст комментатора, используйте следующий код:
<?php echo "Comment authors age: ".get_comment_meta( $comment->comment_ID, 'age', true ); ?>
»Источник: http://wp.tutsplus.com/tutorials/creative-coding/customizing-comments…
Вставьте комментарии программно
В некоторых конкретных случаях вы можете вставлять комментарии программно. Это определенно легко, как показано ниже. Просто выполните этот код, и он добавит новый комментарий в вашу базу данных.
$data = array( 'comment_post_ID' => 1, 'comment_author' => 'admin', 'comment_author_email' => '[email protected]', 'comment_author_url' => 'http://www.catswhocode.com', 'comment_content' => 'Lorem ipsum dolor sit amet...', 'comment_author_IP' => '127.0.0.1', 'comment_agent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3', 'comment_date' => date('Y-m-d H:i:s'), 'comment_date_gmt' => date('Y-m-d H:i:s'), 'comment_approved' => 1, ); $comment_id = wp_insert_comment($data);
»Источник: http://www.wprecipes.com/wordpress-hack-insert-comments-programatics
Автоматически отключать комментирование постов старше X дней
Если ваш блог очень популярен, вы, вероятно, получите много комментариев, некоторые из которых относятся к очень старым сообщениям … Так почему бы не отключить автоматическое комментирование сообщений старше X дней?
Вставьте приведенный ниже код в ваш functions.php
файл. Код отключит комментарии к посту старше 30 дней. Количество дней можно изменить в строке 3.
function close_comments( $posts ) { if ( !is_single() ) { return $posts; } if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( 30 * 24 * 60 * 60 ) ) { $posts[0]->comment_status = 'closed'; $posts[0]->ping_status = 'closed'; } return $posts; } add_filter( 'the_posts', 'close_comments' );
»Источник: http://perishablepress.com/wordpress-tip-disable-comments-in-old-posts-via-php/
Добавить target = ”blank” ко всем ссылкам в тексте комментария
Использование target="blank"
атрибута HTML, как правило, не рекомендуется, так как это приводит к открытию ссылки в новой вкладке или окне, но я знаю, что это нравится клиентам. Поэтому, если вам нужно добавить target="blank"
атрибут к каждой ссылке в тексте комментариев, просто вставьте код, показанный ниже, в свой, functions.php
и вы получите работу.
function autoblank($text) { $return = str_replace('<a', '<a target="_blank"', $text); return $return; } add_filter('comment_text', 'autoblank');
»Источник: http://www.catswhocode.com/blog/snippets/add-target_blank-on-all-link
Настройте разметку комментариев
По умолчанию WordPress выводит стандартный список комментариев, но при необходимости может быть настроен. Вставьте следующий код в ваш functions.php
файл и настройте его по желанию.
function my_custom_comments($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>"> <?php if ($comment->comment_approved == '0') : ?> <em><?php _e('Your comment is awaiting moderation.') ?></em> <?php endif; ?> // Comments markup code here, e.g. functions like comment_text(); }
Когда закончите, используйте следующую строку кода comments.php
для отображения вашей пользовательской разметки комментариев:
<?php wp_list_comments("callback=my_custom_comments"); ?>
»Источник: http://css-tricks.com/snippets/wordpress/customize-comments-markup/
Отключить каналы комментариев в отдельных сообщениях
По умолчанию WordPress создает RSS-каналы для всех отдельных сообщений. Если вы не хотите или не нуждаетесь в них, вы можете отключить их с помощью следующего фрагмента кода. Просто вставьте его в свой functions.php
файл, и вы избавитесь от отдельных постов.
// disable comment feeds for individual posts function disablePostCommentsFeedLink($for_comments) { return; } add_filter('post_comments_feed_link','disablePostCommentsFeedLink');
»Источник: http://digwp.com/2009/11/disable-comment-feeds-individual-posts/