[WordPress] 公開している記事数を取得するショートコードを作ってみた



Nプログラマ(@Nprog128)です。

WordPressでサイドバーに投稿した記事数を表示したい、、、

と思うことがあります。

管理画面から公開した記事数を数えて直書きでもいいのですが、記事を更新(作成・削除・非公開)する度に手動で書き換えるのはとても面倒です。

なプ

しかも書き忘れることもあるはず、、、!

ということで、WordPressで公開している記事数を表示するショートコードを作ってみました。

それを使って、サイドバーに表示するというところまでやってみます。

目標
  1. 公開している記事数を表示するショートコードを作成
  2. 作ったショートコードを使って、サイドバーに記事数を表示
なプ

記事を公開する毎に手動で記事数数を書き換える、という楽しみもあるけどね。

ショートコードを作成する

バックアップを!

function.phpを編集するので、バックアップを取っておくようにしましょう。

公開されている記事数を取得する、というショートコードを作ります。

2通りで作っていますが、どちらを使っても同じ処理です。

(1) 無名関数を使う

無名関数を使ったコード コードを開く
無名関数を使ったコード
1<?php 
2// 現在の公開されている記事数を取得
3add_shortcode('publish_posts_count', function() {
4    return wp_count_posts()->publish;
5});
6

(2) 無名関数を使わない

無名関数を使わないコード コードを開く
無名関数を使わないコード
1<?php 
2// 現在の公開されている記事数を取得
3function publish_posts_count_func() {
4    return wp_count_posts()->publish;
5}
6add_shortcode('publish_posts_count', 'publish_posts_count_func');
7

(1) か (2) のどちらかのコードを利用しているテーマファイルのfunction.phpに記述すれば、使えるようになります。

使い方

先程の作ったショートコードの使い方です。

投稿記事やウィジェットなど表示したい箇所で、以下のようにショートコードを書けばオッケーです。

1[publish_posts_count]

これで現在の公開した記事数を表示することができます。

なプ

公開している記事が10記事の時は、10が表示されます。

ちなみに単独ではなく、他の文章の中に入れて使うこともできます。

1記事数は[publish_posts_count]です。

この場合は、記事数は10です、と表示されます。

サイドバーへ表示してみる

それでは先程作ったショートコードを使って、サイドバーに公開した記事数を表示してみます。

なプ

今回はテキストのウィジェットを使います。

WordPressの管理画面に入り、左のメニューから 外観 > ウィジェットを開きます。

/img/article/2019/04/08/01.jpg
ウィジェットを開く

テキストウィジェットをサイドバーに登録します。

/img/article/2019/04/08/02.jpg
ウィジェットを開く

登録したウィジェットのテキスト入力欄に、作成したショートコードを記述します。

/img/article/2019/04/08/03.jpg
テキストウィジェット 入力前
/img/article/2019/04/08/04.jpg
テキストウィジェット 入力後

ウィジェットには以下の情報を入力しました。

項目 内容
タイトル 現在の記事数
テキスト 公開した記事は[publish_posts_count]です

これらを入力して最後に保存を押せば準備完了です。

トップページに移動して、サイドバーを確認してみます。

サイドバーに、現在の記事は○ですと表示されていればオッケーです(○は公開している記事数)

サイドバー以外に記事やプロフィールなどの固定ページの文章中でも使えるので、色々とお試しください。

おわりに

今回は、WordPressのショートコードで公開している記事の数を取得するショートコードを作り、それを使ってサイドバーに表示する、という内容でした。

記事数を表示するのは、記事更新のモチベーションを上げる一つの方法かもしれませんね。

他には記念メダルとかを一緒に表示すると、さらに楽しめると思います。

それでは、このへんで。
バイナリー!

参考

なプ

公開記事数の他に、下書きや固定記事の数も取得することができるようです。

\ ちょっとお買い物 /


関連した記事