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

Если на 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, средняя оценка: 2.00 из 5)
Loading ... Loading ...

Удаляем якорь вида “#more-123″ из ссылки “читать далее”

Теги: 30 июня 2010

При вставке в текст поста тега <!--more--> WordPress добавляет к ссылке “читать далее” якорь вида #more-123 (цифра – это ID поста), чтобы при переходе по этой ссылке переместиться в то место, где этот тег вставлен. На мой взгляд, это совершенно ненужная вещь, и от нее можно легко избавиться.

В файл functions.php темы необходимо поместить следующий код:

function no_more_jumping($post) {
	return '<a href="'.get_permalink($post->ID).'" class="read-more">'.'Читать далее &raquo;'.'</a>';
}
add_filter('excerpt_more', 'no_more_jumping');

Вот и все.

Оставить комментарий
(Еще не оценили)
Loading ... Loading ...

Заменяем в записях все вхождения указанного текста

Представим, что перед нами стоит задача во всех записях WordPress-блога разом выделить определенное слово жирным или поставить на какое-то слово или словосочетание ссылку.

Редактировать в таком случае каждый пост будет очень нелогично и затратно по времени.

Задача решается очень простым образом – путем использования простейшей PHP-функции для замены текста:

function replace_text($text) {
	$text = str_replace('WordPress', '<strong>WordPress</strong>', $text);
	$text = str_replace('WordPress хаки', '<a href="#">WordPress хаки</a>', $text);
	return $text;
}
add_filter('the_content', 'replace_text');

Эту функцию необходимо поместить в файл functions.php вашего шаблона.

В вышеуказанной функции я показал пример: все вхождения слова “WordPress” будут выделены жирным, а все вхождения словосочетания “WordPress хаки” превратятся в ссылку.

По аналогии можно делать одновременно сколько угодно таких замен.

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