WordPress個別サポート

Twenty Twelveなど、テンプレートファイルの中を見ていくと、bloginfoとget_bloginfoのように似たような名前の命令(関数:タグ)が使われていることに気付くかもしれません。この違いは、bloginfo関数はブログ情報を画面に表示しますが、get_bloginfo関数はブログ情報を戻り値として返します。

○似たような名前の2つの関数
bloginfo関数 → ブログ情報を表示する
get_bloginfo関数 → ブログ情報を(戻り値として)返す

プログラミングに慣れている方はこの説明だけで2つの関数の使い分けがピンとくるかもしれませんが、これからテンプレートのカスタマイズにチャレンジする方の中には、用途や「関数」、「戻り値」というキーワードがピンとこない方がいるかもしれません。そんな方のために、もう少し関数の使い方などを説明したいと思います。

まず、Twenty Twelveのheader.phpを開くと39行目あたりに次のような記述があります。
※Twenty Elevenは75行目あたりです。

<?php bloginfo( 'description' ); ?>

bloginfo関数を使ってキャッチフレーズを表示しています。画面でサイト名の下に表示される部分です。

bloginfo関数によるキャッチフレーズの表示

bloginfo関数によるキャッチフレーズの表示

この1行を堅苦しく表現すれば「画面にキャッチフレーズを表示するため、bloginfo関数に'description'というパラメータを渡して呼び出す」と言うことができます。堅苦しく考える必要はないのですが、今後WordPressをカスタマイズするにあたって書籍を読む場合はプログラミング用語が出てくるので、少しずつ慣れるように、それぞれのキーワードを簡単に説明していきます。

スポンサーリンク

WordPressテーマ「LOTUS (TCD039)」

関数に渡す「パラメータ」

「bloginfo( 'description' )」の「description」ように関数の括弧の中に指定する項目のことを「パラメータ」といいます。パラメータの役割は、どのような動作をするのか指定することです。bloginfo関数はブログ情報を表示する関数ですが、「description」を指定することで、ブログのキャッチフレーズが表示されます。そのような細かい動作の指示を行うときに使うのがパラメータです。

パラメータは呼び出す関数の括弧( )の中に指定し、複数のパラメータがある場合はカンマで区切ります。PHP以外のプログラミング言語でもほぼ共通の作法です。

○関数とパラメータのイメージ
関数(パラメータ)

○複数のパラメータを持つ関数
関数( パラメータ1, パラメータ2, パラメータ3)

パラメータを持たない関数もありますし、パラメータを指定可能であっても省略できる関数もあります。パラメータの使い方は、関数によってさまざまです。また、厳密には関数に「渡すことができる」のがパラメータで、プログラムで「実際に渡した」値のことは「引数」といいます。まぎらわしくなるかもしれないので、ここでは便宜上、関数に渡すものを「パラメータ」という言葉で統一します。

関数から受け取る「戻り値」

関数に渡すパラメータと一緒に覚えておきたいのが「戻り値」です。関数の実行結果として返される値で、たとえばget_bloginfo関数を実行すると、ブログ情報が戻り値として返されます。急に難しくなったように感じるかもしれませんが、bloginfo関数との対比で考えるとわかりやすいです。

ブログ情報を画面に表示するbloginfo関数とは異なり、get_bloginfo関数ではブログ情報を画面に表示せず、いったん受け取ってから次のステップで表示するというワンクッションをおくということです。

○似たような名前の2つの関数
bloginfo関数 --- ブログ情報を表示する
get_bloginfo関数 --- ブログ情報をいったん受け取る(中身を吟味してから表示する)

関数を呼び出した人が関数の実行結果を「受け取る」を逆の立場、つまり、呼び出された関数から見れば、実行結果を呼び出し元に「返す」と表現できます。その返す内容(値)のことを「戻り値」と言います。関数の呼び出しと、戻り値の受け取りの関係を図でイメージしておきましょう。

関数の呼び出しと戻り値の受け取り

関数の呼び出しと戻り値の受け取り

bloginfo関数の変わりにget_bloginfo関数を使う理由

関数の呼び出しと実行結果の受け取りの流れはイメージできたかと思います。なぜ「いったん戻り値を受け取ってから…」のような面倒なことをするのか、詳しくは別の機会に説明しますが、簡単に言えば、中身が問題ないか吟味してから表示するためです。

具体的にTwenty TwelveやTwenty Elevenでは、サイトのキャッチフレーズが空っぽでないかどうか調べてから画面に表示するというチェックをはさむためにget_bloginfo関数が使われています。

$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
	echo " | $site_description";
…略…

$site_descriptionにキャッチフレーズを取り出して、「if ( $site_description …)」の部分で、$site_description(キャッチフレーズ)が空っぽかどうかチェックしています。これだけのコードでなぜ「空っぽかどうか」のチェックになるのか、今日は説明を省略しますが、この部分の役割は理解できたでしょうか。

要は、空かどうかチェックせずに「サイト名 | キャッチフレーズ」という構成でキャッチフレーズを画面に表示するコードの場合、キャッチフレーズが空のときは「サイト名 |」のように無駄な棒が表示されてしまうということです。

このようにしてbloginfo関数とget_bloginfo関数が使い分けられています。

この記事をSNSで共有する
WordPressでお困りのときはご相談を
この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
こんなときはご相談を
  • WordPressの使い方(ページやメニューの作り方を教えてほしい)
  • カスタマイズ(機能の追加やデザイン調整をお願いしたい)
  • トラブル対応(画面真っ白・「ログインできない」を解決したい)
マンツーマンなので相談内容は自由です。いただいた課題をその場で解決、CSSやPHPも目の前で修正します。気軽にご相談ください。
WordPress講座の問い合わせ先

関連記事

BizVektorのカスタマイズ

WordPressカスタマイズ

WordPressによるサイト作成のヒント

WordPressプラグイン

スポンサーリンク
西沢直木によるWordPress講座の紹介
ホームページ作成講座WordPress個別サポート