• Facebook
  • Twitter
  • RSS
月別
コツコツあつめるWeb作りのためのたね たねっぱ!Web系情報ブログ Webのお役立ちネタ配信中!

[WordPress]functions.phpを無名関数を使って簡潔に書こう

投稿者アイコン
2015/10/13
書いた人:
tanippa!
カテゴリ:
PHP   WordPress
タグ
 
6,777 views

Wordpressではフックを使ってカスタマイズをするのが基本ですが、その際のソースの書き方に関して、無名関数を使用したほうが無駄なくソースを書けるのにネットを見る限り中々浸透していないようです。そこで、今回は無名関数を使用した簡潔な書き方をご紹介したいと思います。

[WordPress]functions.phpを無名関数を使って簡潔に書こう

WordPressではフックを使ってカスタマイズをするのが基本ですが、その際のソースの書き方に関して、無名関数を使用したほうが無駄なくソースを書けるのにネットを見る限り中々浸透していないようです。

そこで、今回は無名関数を使用した簡潔な書き方をご紹介したいと思います。

無名関数を使用した簡潔な書き方

カスタム投稿タイプをfunctions.phpから作成したい場合、以下のようなコードになると思います。

function add_news_post_type() {
  $args = array(
    'public' => true,
    'label'  => 'News'
  );
  register_post_type('news', $args);
}
add_action('init', 'add_news_post_type');

この「add_news_post_type」という関数ですが、直後のadd_actionでしか使わないのにわざわざ関数名をつけないといけないの面倒に思いませんか?僕はめちゃくちゃ思います。

これを無名関数を使って書き換えると以下のようになります。

add_action('init', function() {
  $args = array(
    'public' => true,
    'label'  => 'News'
  );
  register_post_type('news', $args);
});

この場合の関数「function() {~}」のことを「無名関数」と言います。普通関数は「function get_some_values() {}」みたいな感じにfunctionの後ろには名前が必要なのに今回付いてないですよね?なので「無名」関数です。jQueryを使った経験のある方にはお馴染みですね。

この書き方の何がいいかというと、関数名を考えなくていいので

  • 関数名に悩む時間を節約できる
  • 関数名の重複による問題に悩まされずに済む

の2点です。

注意としては、無名関数はPHP5.3以降からの対応となるので、少なくなっては来ましたがPHP5.2以下の環境では使えないということに注意しましょう。

以上

自分は変数名・関数名を考えるのに時間を掛けてしまうタイプなので、出来るだけ考えなくていい場面では考えずに済ませるようにしたいと思ってこの書き方は最近多用しています。

以上たにっぱでした〜


この記事を読んだ人はこんな記事も読んでいます