Удаляем имя админа из 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 ...

Возвращаем форматирование текста поста при использовании функции get_the_content()

В одном из недавних заказов у меня была задача – вырезать определенный контент из содержимого поста при его выводе на главной. Для подобных вещей в WordPress предусмотрена функция get_the_content().

Чтобы было понятно, о чем речь, приведу пример ее использования:

$content = get_the_content();
$content = preg_replace('/вырезаем какой-то кусок текста/i', '', $content);
echo $content; // выводим отфильтрованный контент.

Однако при этом есть один минус – в выводимом таким образом контенте отсутствуют HTML-теги, которые есть в оригинале поста, т.е. к примеру, исчезают отступы между абзацами.

Задача решается применением следующей функции (ее необходимо поместить в файл functions.php):

function get_the_content_with_formatting ($more_link_text = '') {
	$content = get_the_content($more_link_text);
	$content = apply_filters('the_content', $content);
	// тут какие-то манипуляции с переменной $content
	echo $content;
}

Ну а в шаблоне вместо этого кода:

<?php the_content('Читать далее &raquo;'); ?>

использовать такой:

<?php get_the_content_with_formatting('Читать далее &raquo;'); ?>
Комментариев: 5
(голосов: 2, средняя оценка: 5.00 из 5)
Loading ... Loading ...

Еще один вариант самых комментируемых записей

Ранее я публиковал пост о том, как выводить список самых комментируемых записей без использования плагина. Предлагаю еще один вариант, который делает то же самое. Мне он видится более красивым.

Код выглядит следующим образом:

<?php $popular = new WP_Query('orderby=comment_count&showposts=7'); ?>
<?php if ($popular->have_posts()) : ?>
	<ul>
		<?php while ($popular->have_posts()) : $popular->the_post(); ?>
	  <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
		<?php endwhile; ?>
	</ul>
<?php endif; ?>

Цифра 7 в первой строке – это количество выводимых ссылок.

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