中級者~上級者向け 知識

【知識】WordPress関数って何?使い方は?

WordPressの知識
この記事は約7分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

WordPress関数って何?

関数とは「何らかの入力に対して加工し、結果として何らか出力」したり「複雑な処理を1つにまとめて、まるごと再利用できるようにする」という機能を提供するものです。

そして、WordPress関数とは、WordPressでWebサイトを制作するために用意された関数のことです。

例として「2つの数字を与えて、その合計を出力する関数」を考えてみます。

「7」と「21」という入力に対して、合計した結果「28」を出力しています。この関数をPHPのプログラムで記述すると以下のようになります。

【PHP】

<?php
echo "合計は" . sum(7,21); // 「合計は28」と表示される
function sum($a,$b) {
return $a + $b;
}
?>

「function sum()」の箇所から、2つの数値の合計を出力する「sum」という関数を定義しています。この例では、sumという関数に直接「7」と「21」の2つの数値を直接入力しています。

さらに入力を「7」や「21」といった決まった値ではなく、変数(プログラムで使う文字や数値などのデータを保存する入れ物)にすることによって、より汎用性の高い関数の使い方もできるようになります。

これは、関数のイメージをつかむための単純な例ですが、実際にはもっと複雑な処理をさせることができます。

関数という機能は、WordPressに特有の機能ということではなく、ほとんど全てのプログラミング言語に備わっているものです。WordPressはPHPで開発されており、WordPress関数とはPHPによって記述された、WordPress専用の関数ということになります。

具体的にWordPress関数にどのようなものがあるのかは、WordPress Codex 日本語版に詳細なリファレンスが掲載されています。

【参考】関数リファレンス

WordPressの関数に関しては、上記のサイトを確認すれば、ほとんどの事はわかります。

今回は、関数リファレンスの中から、WordPressでのWebサイト制作でよく使うものをいくつかピックアップして紹介します。

アイキャッチ画像の存在を確かめる「has_post_thumbnail」関数

投稿や固定ページにアイキャッチ画像が登録されているかどうかを判別する関数が、has_post_thumbnailです。

投稿や固定ページを作る際に、アイキャッチ画像を一緒に設定するかどうかは、任意で設定できます。

has_post_thumbnail関数は、アイキャッチ画像の設定の有無を調べて、設定されている場合はアイキャッチ画像を表示し、設定されていない場合はデフォルトの画像を表示する、などの制御を行うために使用することが一般的です。

特にブログのテーマでは、アイキャッチ画像の設定が前提になっているテーマが多いので、もし投稿者がアイキャッチ画像を設定していない場合、レイアウトが崩れないような調整をするために、この関数が使われます。

具体的なPHPコードは、以下の通りです。

【PHP】

<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
else {
echo '<img src="' . get_bloginfo( 'stylesheet_directory' ) . '/images/default.jpg" />';
}
?>

このコードでは、条件分岐でアイキャッチ画像の有無を調べ、設定されている場合は設定されているアイキャッチ画像を表示し、設定されていない時は、imagesフォルダにあるdefault.jpgを表示させるような制御を行っています。

このように書く事によって、アイキャッチ画像が設定されていない投稿や固定ページに、代替の画像を表示させ、レイアウトを整えることができるのです。

has_post_thumbnail関数の詳しい使い方は、リファレンスをご確認ください。

【参考】has_post_thumbnail

カテゴリーリストを出力する「wp_list_categories」関数

wp_list_categories関数は、WordPressに設定されたカテゴリーの一覧を表示させるための関数です。

カテゴリーだけでなく、カスタムタクソノミーの一覧も表示させることができます。一般的に、カテゴリーの一覧はブログのサイドバーなどで表示させるケースが多いようです。

関数を実行するときの設定で、「記事数がゼロのカテゴリーは一覧に表示させない」とか「カテゴリーの階層は最大で2階層まで」などのカスタマイズも可能です。

  • 記事数を表示する
  • デフォルトの見出しを非表示
  • 記事数がゼロのカテゴリーは非表示にする
  • 親子関係をツリー構造で表示する
  • 階層の深さは最大で5階層とする

例として、以上の条件で呼び出したサンプルが、以下のコードです。

【PHP】

<ul>
<?php
wp_list_categories('show_count=1&title_li=&hide_empty=1&hierarchical=1&depth=5');
?>
</ul>

テンプレートファイルにこのように記述すると、親子関係を持った(階層で表示された)カテゴリーの一覧が表示されます。

wp_list_categories関数の詳しい使い方は、リファレンスをご確認ください

【参考】wp_list_categories

カスタムフィールドの値を取得する「get_post_meta」関数

投稿や固定ページに設定されたカスタムフィールドの値を取得する関数が、get_post_metaです。

カスタムフィールドとは、記事のタイトルや本文の他に、別の情報を追加するための入力欄を作成する機能です。カスタムフィールドが何かについては、以下の記事をご覧ください。

【有用】WordPressのカスタムフィールドって何?どうやって使うの?
WordPressのカスタムフィールドとは、記事のタイトルや本文の他に、別の情報を追加するための入力欄を作成する機能です。カスタムフィールドは「名前」と「値」をセットで設定します。

上の画像は、投稿画面でカスタムフィールド「価格」に値「1000」を設定した例です。

get_post_meta関数を使うと、この「1000」という値を取得することができます。具体的な使い方は以下の通りです。

【PHP】

<?php
echo get_post_meta($post->ID , '価格' ,true);
?>

投稿や固定ページの詳細を表示するテンプレートファイルにこのコードを記述し、価格に1000を設定したページを表示させると、PHPのコードを書いた箇所に「1000」と表示されます。

get_post_meta関数は、使い方によってカスタムフィールドの値の取得方法がいくつかあります。

関数の詳しい使い方は、リファレンスをご確認ください

【参考】get_post_meta

非推奨の関数は使うべきではない?

WordPress Codex日本語版を見てると、一部の関数について「非推奨」とラベルがついたものがあります。これはどういうことでしょうか?

非推奨の関数は、WordPress本体のバージョンアップにより、別の関数に置き換えられた関数です。

しかし実際には、特定の関数を非推奨にしても、過去に開発されたテーマやプラグインにて使われ続けているケースがあります。

そのため、WordPressは本体をバージョンアップしても、非推奨の関数を使っている箇所が動作するように、互換性が保たれるように開発されています。ですので、WordPress本体のバージョンアップに伴い、いきなり動作しなくなる、というケースは少ないです。

しかし、非推奨の関数がこれからもサポートされ続けることは保証されていません。

これからWordPressのテーマやプラグインを開発する際には、非推奨の関数ではなく新しく用意された代替の関数を使うようにすることが重要です。

さらに、過去にテーマやプラグインを開発した場合は、古いコードに非推奨の関数が使われていないかチェックして、新しい関数に書き換えてバージョンアップすることも検討した方がよいでしょう。

 

まとめ

  • 関数とは、特定の処理をひと固まりにしたもので、多くのプログラミング言語に備わっているもの。
  • WordPress関数は、PHPで作られたWordPressをカスタマイズするための関数。
  • 非推奨になったWordPress関数は使わず、新しく用意された代替の関数を用いるようにする。
Pocket