Сегодня очередная подборка из трех хаков для оптимизации WordPress. В этом выпуске вы узнаете, как вывести все записи одного автора (актуально для тех, кто ведет блог командой), как отобразить на блоге общее число трекбэков (кто ссылается на вас) и каким образом можно вывести самые комментируемые статьи за определенный период времени, (для статистики, чтобы не перебирать их вручную).
1) Выводим все записи одного автора
Как я сказал выше, эта функция будет полезна тем, у кого на блоге несколько авторов, в сайдбаре можно вывести несколько ссылок для каждого автора, и посетитель пройдя по ним увидит чьи статьи он читал.
Нам пригодится следующий код:
$numposts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_author = 1"); echo "Все статьи автора nickname"; <ul> foreach ($numposts as $numpost) { echo "<li>".$numpost->post_title."</li>"; } </ul>
Посмотрите первую строку, видите post_author = 1, единица – это id автора. То есть данный код выведет нам все статьи автора, который имеет id=1. Чтобы узнать id, достаточно зайти в админку – раздел Пользователи, найти там авторов, которые публикую статьи на блог и нажать на цифру у столбца Записи. Теперь смотрим ссылку и видим http://domen.ru/wp-admin/edit.php?author=1. В конце ссылки, цифра 1 – это его id.
2) Отображаем общее число трекбэков на сайт
Трекбэки – это ссылки, с которых на вас ссылаются. У меня на блоге их можно увидеть в конце комментариев. Эта очень полезная вещь, когда производишь обмен постовыми. Как только на статью ссылаются, ниже комментариев (у меня) появляется трекбэк.
Чтобы вывести общее количество трекбэков на сайт, потребуется простая функция
function tb_count() { global $wpdb; $count = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_type = 'pingback' OR comment_type = 'trackback'"; echo $wpdb->get_var($count); }
Функция считает в базе данных комментарии с типом pingback или trackback. А чтобы вывести функцию на сайт используйте
<?php tb_count(); ?>
Вставьте где вам угодно.
3) Самые комментируемые записи за определенный промежуток времени
Хак из раздела «Для статистики». Очень полезно узнать, какая статья вызвала резонанс у читателей. Помню даже эстафета была: «Самые комментируемые посты на блоге», думаю всем кто участвовал в этой эстафете, пригодился бы данный хак.
<h2>Самые комментируемые посты до настоящего времени</h2> <ul> <?php $result = $wpdb->get_results(“SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN ’2011-01-01′ AND ’2011-07-16′ ORDER BY comment_count DESC LIMIT 0 , 10″); foreach ($result as $topten) { $postid = $topten->ID; $title = $topten->post_title; $commentcount = $topten->comment_count; if ($commentcount != 0) { ?> <li><a href=”<?php echo get_permalink($postid); ?>”><?php echo $title ?></a></li> <?php } } ?> </ul>
Разъясняю скрипт.
BETWEEN ’2011-01-01′ AND ’2011-07-16′ – промежуток времени, за который нужно узнать самые комментируемые статьи.
DESC LIMIT 0 , 10 – количество выводимых статей.
Теперь этот код можно вставить в сайдбар, и наслаждаться самыми комментируемыми статьями.