[K] 現在の記事は頭から数えて何記事目?を表示するWordPressショートコード

WordPress Pencil and Pins-06

WordPress Pencil and Pins-06 Photo by thisismyurl

WordPress大好き。どうもknk_nです。
いじる度に新たな発見がありますね。

またまた面白いWordPressのTIPSを見つけたのでご紹介します。

今回は「現在の記事が何番目に書いた記事か」を表示する方法です。

総記事数が分かれば今何記事目?が知りたくなる

以前、「ラクイシロク」さんが「総記事数表示する方法あったよ!」ということで記事を書いて下さいました。

[WordPress] 総記事数をブログに表示させてみた * ラクイシロク
<?php $numposts = $wpdb->get_var("SELECT count(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'");
if (0 < $numposts)
     $numposts = number_format($numposts);
echo $numposts.' posts.';
?>

こんなやつですね。

私も早速フッターに使用させていただいたわけですが、そうすると流れ的に「現在の記事は何記事目だろうか」ということが知りたくなってきます。

当然一番最近書いた記事は総記事数と同じなので、現在最新の当記事であれば「イマ396記事目ダロ」というようにサラッと出てくるのですが、過去記事だとサッパリ。

今回紹介するのは、総記事数に対して「現在何記事目?」を表示するWordPressショートコードです。過去記事でも表示可能です。

現在の記事番号を表示するWordPressショートコード

WordPress › フォーラム » 投稿のナンバーを表示する

コピペ祭りじゃぁ。探せばあるものですね。

下記コードのコピペです。
functions.phpには

function get_post_number( $post_type = 'post', $op = '<=' ) {
    global $wpdb, $post;
    $post_type = is_array($post_type) ? implode("','", $post_type) : $post_type;
    $number = $wpdb->get_var("
        SELECT COUNT( * )
        FROM $wpdb->posts
        WHERE post_date {$op} '{$post->post_date}'
        AND post_status = 'publish'
        AND post_type = ('{$post_type}')
    ");
    return $number;
}

これを。
いつもの通り、ローカル環境で試すことをおすすめします。

そして、記事番号を表示させたいところに

<?php echo 'No. '.get_post_number( $post->post_type ); ?>

と書きます。
おそらく、

  • index.php
  • loop.php
  • single.php
  • content.php

あたりのいずれかに書くことになるでしょう。

当記事の場合だと

No. 396

と表示されているはずです。記事右下に表示させているのでWEBにてご確認ください。

塵も積もれば

日刊などと少し異なり、当ブログのような情報発信系のブログは書いた記事数が何か意味を持つわけではありません。
それでもひとつひとつ書いた数をカウントしていくと、思わぬ発見があります。

カテゴリやタグのアーカイブを見ると、記事番号が飛び飛びになっているものがときどきあります。
「これは長い間書いてないんだな、今度書くかな」という気分に少しなります。少しです。

最も大きなメリットは自己満足ですかね。書く度に「いま◯◯記事目だ、ぐへへ//」となります。
現在400記事目前なので、カウントダウン開始です。ジャスト400では何かするかも。しないかも。

フッターの総記事数と合わせて使うと楽しめますよ!ぜひお試しください。

プラグインを使わずに「見る」サイトマップを導入する方法 | WordPressデザインブック買っ…てしまった その3 | けんけん.com

後ろから何記事目?を表示する方法 (2012/05/20追記)

関連して「頭から何記事目?」ではなく「後ろから何記事目?」かを表示する方法も紹介します。

WordPress › Support » Show post number

こちらはfunctions.phpに

function Get_Post_Number($postID){
    $temp_query = $wp_query;
    $postNumberQuery = new WP_Query('orderby=date&order=<strong>DESC</strong>&posts_per_page=-1');
    $counter = 1;
    $postCount = 0;
    if($postNumberQuery->have_posts()) :
        while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
            if ($postID == get_the_ID()){
                $postCount = $counter;
            } else {
                $counter++;
            }
    endwhile; endif;
    wp_reset_query();
    $wp_query = $temp_query;
    return $postCount;
}

と書いて、表示したいところに

<?php $currentID = get_the_ID(); ?>
<?php $currentNumber = Get_Post_Number($currentID); ?>

<?php echo 'No. '.$currentNumber; ?>

と書きます。

最新記事を「No. 1」 として、以下2、3と続いていきます。
使いどころが難しそう。

英語のドキュメントやフォーラムもたまには役に立つ!

Categories:
記事が気に入ったらシェアお願いします!