Записи с тегом "комментарии"

Решение проблемы с оформлением ссылки ответа на комментарий

Если на WordPress-сайте в настройках активирована опция древовидных комментариев, то под каждый комментарием появляется ссылка “ответить”, за исключением последнего уровня вложенности.

Верстая шаблоны для WordPress, мне не раз приходилось сталкиваться с необходимостью оформления этой ссылки, например, вот так:

Ссылка 'Ответить на комментарий'

Исходный код ссылки “ответить”, согласно стандартному коду WordPress, выглядит следующим образом:

<div class="reply">
	<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>

Второй комментарий, который на скриншоте – это последний уровень в дереве, т.е. в нем ссылка “ответить” не выводится. Но, оформление, как мы видим, осталось.

Так происходит потому, что ссылка исчезает, а блок <div class="reply"></div> остается, а поскольку к нему применены CSS-стили, поэтому наблюдаем такую некрасивость, как на скриншоте.

Я поэкспериментировал с PHP-кодом, чтобы получить условие, которое позволит исчезать этому блоку одновременно с исчезновением ссылки, и у меня получилось вот такое решение:

<?php if (comments_open() AND (get_option('thread_comments') == 1) AND ($depth != $args['max_depth'])) { ?>
		<div class="reply">
			<?php comment_reply_link(array_merge( $args, array('add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
		</div>
<?php } ?>

Его нужно использовать вместо того кода, который я привел выше.

—–

Лидер в производстве детских развивающих игрушек представляет трехколесный велосипед Smoby с ручкой, в стиле Принцессы Диснея, приобрести который можно в детском интернет-магазине BABADU.RU.

Комментариев: 1
(голосов: 1, средняя оценка: 2.00 из 5)
Loading ... Loading ...

Удаляем имя админа из CSS-классов в комментариях

Одной из рекомендаций, касаемых безопасности WordPress-сайта, является замена имени админа (admin), которое устанавливается системой по умолчанию.

Я удивляюсь тому, как долго разработчики движка шли к следующему – лишь в 3-й версии WordPress появилась возможность при установке указать свое имя.

Так вот, суть в том, что имя админа содержится в исходном коде комментариев, в виде имени CSS-класса comment-author-admin. Вот так это выглядит:

Удаляем имя админа из названий CSS-классов в комментариях

Видя этот класс, сразу понятно, что логин админа – admin. Остается только подобрать пароль.

Чтобы усложнить задачу хакерам, необходимо удалить этот класс путем добавления следующей функции в файл functions.php вашей темы:

function remove_comment_author_class( $classes ) {
	foreach( $classes as $key => $class ) {
		if(strstr($class, "comment-author-")) {
			unset( $classes[$key] );
		}
	}
	return $classes;
}
add_filter( 'comment_class' , 'remove_comment_author_class' );

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

P.S. Плюсом к вышеописанному рекомендую заблокировать отображение ошибок на странице авторизации.

Оставить комментарий
(голосов: 2, средняя оценка: 4.50 из 5)
Loading ... Loading ...

Список самых комментируемых постов без плагина

Нужно вставить в шаблон следующий код (наиболее подходящее место для этого обычно файл sidebar.php):

<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) {
	setup_postdata($post);
	$postid = $post->ID;
	$title = $post->post_title;
	$commentcount = $post->comment_count;
	if ($commentcount != 0) { ?>
		<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a> (<?php echo $commentcount ?>)</li>
<?php } } ?>
</ul>

Чтобы изменить количество отображаемых ссылок, измените цифру 5, которая находится во второй строке кода.

—–
ОДО “Текона-М” поставляет спиральные шланги ПВХ и ПУ, которые имеют хорошую химстойкость. Благодаря используемой технологии производства они очень гибки, долговечны и устойчивы к износу.

Комментариев: 2
(голосов: 3, средняя оценка: 5.00 из 5)
Loading ... Loading ...