20131101

こんにちは。

今日はタイトルにもある通り、管理画面のフッター部分に現在のテーマのバージョンを表示させる方法です。

ついでに「WordPressのご利用ありがとうございます」や右下の本体バージョンなど、はじめから書かれているフッターを書き換えるフックも一緒に紹介します。

結構ニッチなカスタマイズな気もしますが、クライアントワークとかで汎用テーマを作っていたりする場合とかは簡単にテーマバージョンが分かるようにしておいたほうが問い合わせに対応するときとか便利だったりすることもあります。

あと、共同で作業してるときなんかもそうですね。HTML部分を作る人とPHPを書いてテーマ化する人、コンテンツを投入する人みたいな感じで分担して作業してる時とかって何かしらの方法で課題管理とかを行うと思うのですが、不具合が発生した時のバージョン番号がわかると対応も楽になりますよね。きっと。

ということで早速やってみましょう。

テーマの情報を取得する

テーマに関する各種情報を取得するのは非常に簡単です。なぜなら「wp_get_theme」という関数があるからです。

任意の場所で(たいていは functions.php だとおもいますが)

 という風に書くと、 $my_theme_obj にテーマ情報が返ります。

パラメータ

パラメータはすべて空欄なら現在のテーマが対象となります。殆どの場合自分自身の情報を表示すると思うので、パラメータは空欄のまま使うことが殆どだとおもいます。

$stylesheet
Codexによると、「Directory name for the theme.」とありますので、多分取得したいテーマのフォルダ名かと。デフォルトだと現在のテーマの名前が入るようです。

$theme_root
こちらは「Absolute path of the theme root to look in.」とのことですので、どうやらテーマフォルダまでの絶対パスのようですね。また、「If not specified, the value returned by get_raw_theme_root() will be used.」ともありますので、指定しなかった場合「get_raw_theme_root()」関数が実行されてその結果を利用するようです。

戻り値

Name テーマ名
ThemeURI テーマフォルダまでのパス
Description テーマ説明文
Author テーマ作者名
AuthorURI テーマ作者のサイトURL
Version テーマバージョン
Template 現在のテーマのフォルダ名(?)
Status 公式テーマディレクトリ関連かも(?)
Tags 公式テーマディレクトリ関連かも(?)
TextDomain 翻訳関連(?)
DomainPath 翻訳関連(?)

後半曖昧でスミマセン。ただ、ほとんどは style.css の冒頭で定義しているテーマ情報をそのまま取り出せると思ってよさそうな感じです。

多国語対応テーマや公式テーマディレクトリにアップした経験がないため、そのへんで必要になってくる情報については判らないですが…。

詳しくはCodexを読んでみてください。
Function Reference/wp get theme « WordPress Codex

とりあえず、今回必要なのはバージョン情報ですので、「Version」で取り出せることがわかればそれでよしとしましょう。

バージョン情報を実際に取り出してみる

取り出すには、このように書くようです。

$my_theme_obj->get(‘Version’);

これだけだと出力できませんので、実際にはこんなかんじでしょうか?

 管理画面のフッターにフックする

さて。これでテーマのバージョンはとれるようになったので、今度はテーマのフッター部分に出力させてみましょう。

フッター部分には、テキストが出力できる場所が実は3箇所ほどあります。

1つ目は、左下、「WordPressのご利用ありがとうございます」と書かれている部分、
2つ目は、右下の本体バージョンが書かれている部分、
そして3つ目は、1つ目の「WordPressのご利用ありがとうございます」の上の部分(初期状態では空欄)です。

それぞれ、「admin_footer_text」「update_footer」「in_admin_footer」という部分にフックすることで書き換えることができます。

ということで、functions.phpにこのように書いててください。

フッターが書き換わりましたか?

書き換われば成功です。あとは、実際に書いたコードと、出力された場所とを見比べながら、気に入った場所に、気に入った文言をいれてあげると良いでしょう。

もちろん無理に全てを埋める必要はありませんので、残したいところはフック自体を外してしまえばはじめから用意されているものが表示されます。

ちなみに自分はテーマバージョンと、問い合わせ用に会社のサイトへのリンクを入れています。
CODE IS POETRYはさすがに入れてません…w

コメントする