たとえば「公開しているすべてのブログエントリーの数」を数えるのには、以下のように SQL 文を発行する(このサイトのカテゴリブロックで実際に使っているもの)。
<?php
$count = db_result(db_query("SELECT COUNT(*) FROM {node} WHERE type = 'blog' and status = '1'"));
print '';
printf('- すべて (%d)
', $count);
ptint '
';
?>
ポイントは、SQL 文の WHERE 句で、type = 'blog' とコンテンツタイプ(英語名)を指定しているのと、status='1'は「公開(published)」を表しているところ。
・・・って、API とかもっとスマートな方法はないのか?と思ったのだが、https://drupal.org/ で検索して調べても、上のような方法しか見つからなかった。ほかにいい方法があれば教えてください。