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