2012.11.17
前回「1人運営のWordPressサイトで記事総数を出す時の簡単な方法」という記事を書きましたが、複数ユーザーの場合は使えません。世にあるコードをベースに調整する必要があります。個人的に必要になったので、メモ。
まずは、ユーザーを指定せず、全ての記事数を表示するコードを記載しておきます。
get_var("
SELECT COUNT(*) FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'publish'
");
echo $result;
?>
ユーザーを指定したい場合は、先ほどのコードに条件を追加します。
get_var("
SELECT COUNT(*) FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'publish'
AND post_author = '1'
");
echo $result;
?>
「AND post_author = ‘1’」の部分を追加しています。1というのは、ユーザーIDです。
ユーザーIDは、「ユーザー管理画面」で対象ユーザー名の名前部分のリンクをマウスオーバーします。すると、ブラウザ下部のURL表示部分にユーザーIDが表示されてIDを確認することができます。
ここまで分かれば、あとは簡単な応用レベルですね。以下のようなコードになります。
get_var("
SELECT COUNT(*) FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'future'
AND post_author = '1'
");
echo $result;
?>
「AND post_status = ‘future’」ですね。futureは未公開の事です。他にも下書き=draftなどがあります。
もう少し簡単にいくと良かったのですが、ちょっと手間な感じになってしまいました。単純に両方を調べて足しているだけです。
get_var("
SELECT COUNT(*) FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'future'
AND post_author = '1'
");
$publish = (int) $wpdb->get_var("
SELECT COUNT(*) FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'publish'
AND post_author = '1'
");
echo $result + $publish;
?>