Полезности для wordpress. Часть 1
Серьезные плагины для вордпресса я писать пока не готов. Не готов не в плане возможностей а из-за нехватки времени в данный момент. Задумки есть, полезные, хорошие, и думаю в ближайшее время я начну выпускать бесплатные плагины собственного производства.
Зато на всякие полезные функции время есть, я сталкиваюсь с ними почти ежедневно. Некоторые рождаются в моих ответах на форумах о wordpress, некоторые пишу для своих проектов на ВП.
В общем я решил время от времени создавать пост под названием «Полезности для wordpress. Часть ##» как только наберется небольшой запас кода, который заслуживает внимания, и который может быть полезным прежде всего новичкам, или тем, чьи знания php и структуры wordpress не велики – а функционал блога расширить хочется. Пост будет в формате «Вопрос-ответ».
И так, приступим:
Как вывести всех зарегистрированных пользователей блога и количество постов, которые они написали?
Проще всего в данном случае получить выборку запросом к базе данных.
$q = $wpdb->get_results("SELECT `display_name`,COUNT(*) as `count` FROM $wpdb->posts,$wpdb->users where $wpdb->users.`ID`=$wpdb->posts.`post_author` and `post_parent`=’0’ group by post_author");
if( !empty($q) ){
echo ’<ul>’;
foreach( $q as $rec ){
echo "<li>$rec->display_name ($rec->count записей)</li>";
}
echo ’</ul>’;
}
Результат будет примерно таким:
- admin (30 записей)
- arsenal (10 записей)
- random_nick (5 записей)
Как узнать количество постов какого-то конкретного автора в wordpress?
Если известен ID участника блога, то нужно вызвать стандартную функцию get_usernumposts
echo get_usernumposts($id)
или вызвать простенький запрос (но лучше первый вариант, т.к. возможны изменения в названиях таблиц и полей в будущем)
$row = $wpdb->get_row("select count(*) as `count` from $wpdb->posts where `post_author`=’$id’ and `post_parent`=’0’ and `post_status`=’publish’ and `post_type`=’post’");
if( !empty($row) ){
echo "У пользователя (ID=$id) $row->count записей";
}
А если не по ID а по логину?
Почти тот же случай, но сперва нужно узнать ID пользователя
$login = "admin";
$user_data = get_userdatabylogin($login);
if( !empty($user_data) ){
$count = get_usernumposts($user_data->ID);
echo "У пользователя (Логин=$login) $count записей";
}
А если нужно вывести количество постов автора, зная его мыло, то замените get_userdatabylogin на get_user_by_email
- Создание сайтов с необычным дизайном - в чем суть?
- Программы которыми я часто пользуюсь
- Бесплатный перехват смс, прослушка мобильного и модели телефонов, поддерживающие эти программы.
- Цветы
- Делаем миниатюры из картинки
- Горнолыжные курорты Андорры
- Поисковая оптимизация сайта: в чем разница между профессиональным и любительским подходом?

