Как на блоге вывести кол-во постов и комментариев

Приветствую. Подскажите как на блоге вывести такую запись: В моем блоге A постов и B комментариев. Вроде по кодексу шарил а найти не могу.
P.S. видел такое в буржунете..

Забыл сказать, wp 2.3.1

Не знаю, может есть более правильное решение, но можно и так:

Posts:
<?php 
$post_count = $wpdb->get_results("SELECT count(ID) as count FROM $wpdb->posts WHERE post_type='post' AND post_status='publish'"); 
echo $post_count[0]->count;
?>

Comments:
<?
$post_count = $wpdb->get_results("SELECT count(comment_ID) as count FROM $wpdb->comments");
echo $post_count[0]->count;
?>

кодекс, конечно, этим вопросам не мучил, но то что это два(хе, можно и одним) запроса к БД знаю однозначно..

Ю.Б., большое спасибо, не знал что таким образом можно формировать запросы к бд. А в wp есть такой файл wp-cron.php, это то про что я думаю? 🙂
Суть такова – мне не нужно при каждом посещении (или каждый час, т.к. стоит плагин кеширования) обновлять эту информацию. Мне бы было достаточно делать этот запрос раз в день, а результат вывода, скажем, хранить в текстовом файле (выводить php-функцией readfile()). Если это в действительности какая-то альтернатива крону, то как ее настраивать?

Не, это не то, что Вы думаете, это – наоборот. 🙂 Настоящий системный хрон вызывает wp-cron, а тот в свою очередь что-то делает.

По поводу кеширования рекомендую прочитать http://maxsite.org/ras34

Юрий Дмитриевич, насколько я понимаю это мануал к написанию своего плагина? Если да, то мне не понятен такой момент:

Это отображает количество запросов MySQL и время выполнения. На своей тестовой машине, где включены полсотни плагинов и больше двадцати виджетов, без кэширования создается примерно 120 запросов MySQL. После включения кэша количество сокращается до 50-70, а после применения глобального кэширования - всего 10-20. Мой рекорд - 8 запросов.

1. По моему на битриксе бы блог и то меньше запросов генерил 🙂
2. Если мы закешировали все, от доктайпа и до </html>, значит максимальновозможное кол-во запросов – 1 (в случае если актуальность кеша (время хранения, допустим в сек) храниться в базе), ну ни как не 10-20 запросов. Откуда они беруться?

P.S. для кэширования я использю wp-cache 2.1.2, дело в том, что он кеширует весь буфер вывода, в том числе и кол-во mysql запросов и время генерации страницы 🙂 Чет даже непредположу как посмотреть нагрузку на хост с этим плагином…

1. По моему на битриксе бы блог и то меньше запросов генерил :)

Всё может быть. Но не только в количестве запросов счастье. 🙂

P.S. для кэширования я использю wp-cache 2.1.2, дело в том, что он кеширует весь буфер вывода, в том числе и кол-во mysql запросов и время генерации страницы :) Чет даже непредположу как посмотреть нагрузку на хост с этим плагином...

В reaadme к плагину есть раздельчик = How do I make certain parts of the page stay dynamic? =

В reaadme к плагину есть раздельчик = How do I make certain parts of the page stay dynamic? =

Спасибо, сейчас не разобрался, завтра сутра попробую. А вообще то нужен плагин-эмулятор крона? Просто я мог бы написать попробывать. Как крон сэмулировать я представляю, а вот как это все организовать в админке предстоит разобраться.

Все еще не смог разобраться, помогите плиз.

<!--mclude pmstat.php-->
<?php include_once('pmstat.php'); ?>
<!--/mclude-->

Чищу кеш, обновляю страницу. В кеше она появляется, файл инклюдится. Обновляю еще раз, инклюда нет, в хтмл:

<!--mclude-->
<!--/mclude-->

Что-то неправильно работает или я что-то неправильно делаю?

А файл pmstat.php в корне блога лежит?

Ю.Б., нет, лежит в папке с файлом, из которого он вызывается..

Прописал полный путь, та же история – первый раз показывает, затем нет

Да пес его знает. Попробуйте кинуть в корень какой-нибудь простенький phpшник, пусть хоть время выводит, что ли. Там в кодах что-то такое есть с дорисовкой ABSPATH. У меня нигде живого плагина нет, где был – там милый сердцу WordPress заменили на нечто несуразное. Если под виндой заработает, то я посмотрю, что он вытворяет.

Вбил ногами под винду. Поставил в сайдбаре

<!–mclude time.php–>
<?php include_once(‘time.php’); ?>
<!–/mclude–>

В корень положил time.php следующего содержания:

<?php echo date("H:i:s"); ?>

Часики на странице "тикают". В "подвале" страницы написано:

<!– Dynamic Page Served (once) in 0.330 seconds –>
<!– Cached page served by WP-Cache –>

В файлах кеша встречаются строки

<!–mclude–>
<?php include_once(‘d:\www/time.php’); ?>
<!–/mclude–>

Это значит работает или как?

Видно работает 🙂 Я не додумался посмотреть файлы кеша, сейчас гляну. Спасибо большое за помощь!

Действительно, все работает! В файле кеша:
<!–mclude–>
<?php include_once(‘/home/u84335/lastidea.ru/www/pmstat.php’); ?>
<!–/mclude–>
Как-то сразу не додумкался, файл pmstat.php:
<p id="pmstat"><?php echo get_num_queries(); ?> queries, <?php timer_stop(1); ?> sec, cached.</p>
Но когда страница выводится из html файла он не инклюдиться, почему – хз. Ну ладно, это не кретично. Еще раз спасибо за помощь

Anonymous
Отправить
Ответ на: