Просмотр архивов по тагу: ‘Трюки’
Денис спрашивает в Google Groups такую интересную вещь:
есть ли какая-то возможность повесить на трекбеки в комментах отдельный класс, чтобы выделить трекбеки визуально?
Если Вы уже обратили внимание, то у меня блоге trackbakcs и pingbacks отделены от комментариев вообще. Это и визуальнее удобнее, и комменты не загрязняет. А то бывает как натрекбекят. Ну так вот, делюсь с вами очень простым способом отделения трекбеков от комментариев в WordPress.
Тип комментов определяется очень просто. Чтобы вывести только комментарии в списке, достаточно всего-лишь указать эту вещь в цикле foreach:
if (get_comment_type() == "comment")
Далее вам нужно просто сделать 2 списка. В 1ом будут выводиться только комментарии, а во втором пинг- и трекбеки. Чтобы вывести трекбеки и пингбеки в отдельном списке, нужно использовать отдельны запрос и установиь get_comment_type () не равным типу comment (тоже в цикле, как и ранее):
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' AND comment_approved = '1' AND comment_type!= '' ORDER BY comment_date");
# удаляем комменты из списка
if (get_comment_type() != "comment")
Далее, остается только сделать css-классы для более интересного оформления. Пример готового шаблона comments.php можно скачать здесь (файл в кодировке UTF). Этот же самый шаблон я использую в оформлении S@R.
Из записок для WordPress Cookbook.
Прочитал две статьи на тему «Как создать шаблон для WordPress» и был крайне удивлен подходу создавания шаблона. На мой взгляд, оба описания предлагают более трудоемкий и непрактичный подход. Я не люблю долго возиться с шаблонами и предпочитаю группировать все элементы как можно плотнее, избегая при этом лишнего кода. Отчего мои верстки для WP не страдают насыщенностью запросов.
В связи с этим я тоже решил поделиться своим опытом и предложить свой метод создания шаблона с нуля, который, на мой взгляд, практичнее и удобнее. Хочу отметить, что данный ebook — это мой личный опыт и я постарался наиболее просто показаться свой метод создания шаблона для WordPress.
Особенности моего метода — это компактность, практичность, удобство и универсальность. В ebook'е приведены полные листинги кода, этот же код я использую как базовый в шаблоне Slaff @ Reworked и других свох блогах. Я намерянно опустил ту часть, в которой следовало бы рассказать о CSS, потому что это несколько другая тема.
Скачайте и прочитайте ebook «WordPress Cookbook. Создание шаблона с нуля.» Распространяйте эту книжку в любом виде.
И как у людей 2ым днем в новом году голова еще работает и позволяет сознательно делать какие-то важные вещи? Не понимаю, но в группе ru-wordpress интересный тред завелся сегодня утром про оптимизацию сайтов на WordPress.
От малого к большому или наоборот, вообщем как это делаю я? Процесс оптимизации сайта, блога на WordPress дело вообще простое, но требующее немного времени и внимания. Поэтому поделюсь опытом. В основном всякого рода оптимизация у меня происходит в темплейте блога. В нем я стараюсь ввести, указать все данные напрямую, ручками , и не через обращение к базе.
Т.е., к примеру кодировка в обычном виде указывается и значение charset берется из поля в БД, которое мы заполнили в админке:
meta http-equiv="Content-Type" content="text/html; charset=< ?php bloginfo('charset'); ?>"
Это лишнее, я её просто прописываю как обычно:
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
Или также в контекте название какого-то блока, заголовка (разумеется в нужных нам тегах, которые я в примере просто опустил):
< ?php _e('Название чего-то там'); ?>
Можно ведь просто так:
Название чего-то там
Ну и так далее. Для всех плагинов, которые предлагают использовать кеширование — использую эту опцию. Также для WP отдельно wp-cache2 (вышла новая версия, кстати).
Дополнительно к этому в WP можно очень просто организовать подключение каких-то скриптов, выполнение каких-то разовых функций только там, где это можно (используя is_home, is_single, etc.). Т.е. везде, где можно избежать обращения к базе данных — надо его избегать. Таким образом понижая кол-во запросов к БД.
Хотя с другой стороны, в WordPress довольно хорошо продумана как раз эта часть — обращения к базе данных (про это на Maxsite.org довольно много написано). Так что по сути дела, такой оптимизацией лишь немного ускоришь работу шаблона. И ради всего святого, уберите из ваших темплейтов лишние кнопочки и никому не нужные рейтинги, счетчики.
Это меня сегодня в Gtalk спросили. Дело 2х минут в принципе. В WordPress 2x берем файл quicktags.js, который находиться в папке «wp-includes/js». И открываем его для редактирования.
Примерно на 36ой строке начинается сам список этих кнопочек. Кнопки отображаются в меню в той последовательности, в которой они прописаны в javascript'е. Формат каждой кнопки носит под дефолту такой вид:
edButtons[edButtons.length] =
new edButton('ed_small'
,'small'
,'<small>'
,'</small>'
,'s'
);
new edButton ('ed_small' — определяем кнопку в Js
'small' — название для меню
'', '' — таги открыть/закрыть
's' — hotkey (в FF это ALT+указанная буква)
Это самый простой пример. Можно усложнить, вставить какой-то div с прописанным css-классом. Можно усложнять какими-нибудь диалогами на манер тага IMG или HTML. Так что, открывайте и экспериментируйте. Ну и в конце у Вас получиться вот такая фигня в админке:

Кстати, этот же js скрипт используется во некоторых плагинах для тулбара с тагами в комментариях. Вообще, со стороны посетителя блога и комментатора, приятно видеть в комментах такой тулбарчик (для комментов его можно втрое урезать кнопки. Удобно где-то мысль свою подчеркнуть, выделить, имхо.
А я уже рассказывал как вывести списком «Любимые записи» aKa Noteworthy? Это плагин, который до сих пор находиться в beta-стадии. Мода, ага. Нам по фиг, скачиваем и устанавливаем его. Нужно будет сделать категорию специальную (noteworthy, evergreens, favorites, фигня — как вам угодно). Записи, котороые будут в этой категории можно помечать, например в цикле, каким-нибудь сердечком или как делаю это я допонительно — вывожу отдельный список на странице с архивами, это мои самые любимые посты в блоге.
Чтобы сделать такой же список, Вам понадобиться этот php код (css на усмотрение, у меня обычный список ul/li):
< ?php if (function_exists(nw_noteworthyLink)) { ?>
<div class="sidebox">
<h2>Любимые записи</h2>
<ul>
< ?php
# numberposts=10 - указываем кол-во ссылок (постов)
# category=28 - id любимой категории
# $luv - переменная для цикла foreach, можете поменять её название на любое другое
$luv = get_posts('numberposts=10&category=28'); ?>
< ?php foreach($luv as $post) : ?>
<li><a href="< ?php the_permalink(); ?>" rel="bookmark">< ?php the_title(); ?></a></li>
< ?php endforeach; ?>
</ul>
<p align="right"><a href="< ?php echo get_settings('siteurl'); ?>/category/noteworthy/feed/" title="RSS для Любимых записей" class="feedlink">Подписаться на RSS</a></p>
</div>
< ?php } ?>
Таким образом, выводиться список моих любимых постов с прямой ссылкой на них. В качестве названия используется название самого поста.
Можно изменить подход. Если убрать проверку на существование функции (т.к. фактически это проверка на существование одной из категорий (буржуи — они такие)) и проверять id категории или точное местонахождение (главная, постраничный просмотр, отдельная страница etc.), то можно вывести подобный списко для любой категории.
Пользуйтесь в своё удовольствие ;).
Вы это можете увидеть на моей странице архивов в боковой панели. Для этого нам понадобиться плагин Ultimate Tag Warrior. Сначала мы его установим, активируем, поднастроем в адмике WP. Всё остальное — дело 2х минут. Нужно только не забывать про RTFM — в мануалах и readme плагинов всё написано.
Итак, всё очень просто. Вывести такой своеобразный ТОП можно встроенной в UTW функцией:
< ?php if (function_exists(UTW_ShowWeightedTagSet)) { ?>
<div class="sidebox">
<h2>Топ 15 тагов</h2>
<div class="verticaltags">
< ?php UTW_ShowWeightedTagSet("weightedlongtailvertical","",15); ?>
</div>
</div>
< ?php } ?>
В середине, в строке UTW_ShowWeightedTagSet («weightedlongtailvertical»,"",15) число 15 меняем на любое какое хотим, чтобы было в нашем ТОПе.
Но это не всё. Без нормального CSS, у Вас ничего не получиться красиво. Вот такой css вам сделает всё красиво:
/* TOP 15 TAGS */
.verticaltags div {
margin: 0 !important;
text-transform: lowercase;
font-weight: bold !important;
}
/* Обычная ссылка */
.verticaltags div a {
color: #fff !important;
border: 0;
padding: 3px;
}
/* Ссылка при наведении мышки */
.verticaltags div:hover, .verticaltags div a:hover {
color: #437295 !important;
background: transparent !important;
}
На многих wp-блогах на странице с архивами пишется количество постов, комментариев, категорий во всём архиве блога. Это легко сделать. Если вы еще не нашли решение (см. шаблон динозавра К2), то вот мини howto.
1) Нам нужен php код с запросом к базе данных, который посчитает количество постов, комментариев и т.д.:
< ?php
/* Количество постов */
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts);
/* Количество комментарие */
$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms);
/* Количество категорий */
$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
if (0 < $numcats) $numcats = number_format($numcats);
?>
Этот код вставляете до вызова get_header (); и в body простым echo ($numposts, $numcomms, $numcats) выводите это значение.
Кстати, для таких вот симпотичных архивов Вам понадобиться 2 плагина: Extended Live Archives и Ultimate Tag Warrior .