こんにちは。
WordPress歴8年以上のミヤチです。
初めてWordPressテーマの中身を見たときには、見慣れないPHPコードのオンパレードでと戸惑ってしまうことが多いですよね。
WordPressでは、
- 記事の情報を取得する
- 投稿日を表示する
- 一つ前の記事を取得する
などの、よく使われるプログラムは「関数」としてまとめられています。
関数とは、平たく言うと、あらかじめ決められた言葉をPHPで書くことで、指定のプログラムを勝手に実行してくれるものです。
WordPressテーマの中でよく使われる関数などをあらかじめ知っておくことで、初めて読むコードでも当たりがつけやすくなります。
そこで、この記事では初心者だからこそ抑えておいてほしい、よく使われる関数などの一覧をまとめました。
ここにある関数を抑えておくとオリジナルテーマの作成のときにも役立つので、ぜひ知っておいてくださいね。
よく使われる関数
WordPressでよく使われる関数は、記事の内容を取得したり出力したりするものが多いです。
the_title : 記事のタイトルを出力
記事のタイトルを出力してくれる関数です。
タイトルを表示したいところに
<?php the_title(); ?>
と書くだけで、表示されます。
the_permalink : 記事URLを生成
記事のURLを生成して表示してくれる関数です。
<a href="<?php the_permalink(); ?>">記事へ移動</a>
という形で使用することが多いです。
the_content : 記事の本文を出力
記事の本文を表示してくれる関数です。
個別記事ページ(single.php)や、固定ページ(page.php)で使われることが多いです。
なお、この関数で本文を表示するときは、
<?php the_content(); ?>
を単体で使用しても本文が表示されないので注意が必要です。
かならず、
<?php while(have_posts()): the_post(); ?>
と
<?php endwhile; ?>
の間で使う必要があります。
the_excerpt : 記事の抜粋文を出力
記事の抜粋文を表示するには、下記の関数を使います。
<?php the_excerpt(); ?>
WordPressでは、記事を投稿するときに、本文とは別に「抜粋文」が生成されています。
何も編集していないと、単に記事の冒頭が抜粋文になります。
記事の一覧ページなどで、本文を少しだけ表示したいときに便利な関数ですね。
the_category : カテゴリを出力
記事が登録されているカテゴリーを、リンク付きで表示してくれます。
<?php the_category(); ?>
の形で使用してください。
ただしthe_content()
と同じく、
<?php while(have_posts()): the_post(); ?>
と
<?php endwhile; ?>
の間で使用する必要があるので注意。
get_categories : カテゴリを取得
記事につけられているカテゴリを「取得」する関数です。
<?php get_categories(); ?>
the_category
では、「どんなカテゴリが付与されているかを取得してリンク付きで画面に出す」までを行ってくれますが、get_categoory
は「どんなカテゴリがあるのか取得する」だけです。
記事についているカテゴリをチェックして、その情報をもとにHTMLや付与するCSSのクラスを変更したいときなどに利用されます。
home_url : URLを生成
こちらは、サイトのベースになるURLを生成してくれる関数です。
<?php home_url(); ?>
たとえば https://domain.com
のような、サイト内で共通しているURLの頭の部分を作ってくれるもの、と認識してもらえればOKです。
関数 home_url
は「生成・取得」のみなので、実際に使う場合は
<a href="<?php echo home_url(); ?>">トップページへのリンク</a>
のように、前にecho
を付けて利用することが多いです。
echo
は、次に続くものをHTMLのコードとして出力する、という命令なので、上記の例では「home_url
で用意したURLを書き出して」と命令する役割になっています。
なお、home_url
のあとに続く()内に文字を追加すると、URLの後ろに任意の文字を付け加えることができます。
<a href="<?php echo home_url('/contact'); ?>">お問い合わせページへのリンク</a>
は、
<a href="https://domain.com/contact">お問い合わせページへのリンク</a>
となります。
bloginfo : サイトの基本情報を出力
サイトの基本情報を画面に表示するには、bloginfo
という関数が使われます。
<?php bloginfo(); ?>
基本情報とは下記などを指します。
- サイト名
- サイトのキャッチフレーズ
- サイトアドレス
- 管理用として設定されたメールアドレス
- 使用言語
bloginfo を使用する時は、どんなサイトのどんな情報を取得・出力したいかによって、bloginfo
に続く()の中に入れる言葉を変えます。
たとえば、サイト名はname
で指定ができるので
<h1><?php bloginfo('name'); ?></h1>
とすると、
<h1>Miyachi Labo</h1>
のようにサイト名が表示されます。
なお、サイトのキャッチフレーズはdescription
のため、下記の通りになります。
<?php bloginfo('description'); ?>
the_time : 記事の公開時間を出力
記事が公開された時間を表示する関数がthe_time
です。
<?php the_time(); ?>
とすると、「10:36 pm」のような形で、投稿時間が表示されます。
時間の表示フォーマットは、ダッシュボード(管理画面)の「設定 > 一般設定」内にある時刻フォーマットが採用されています。
なお、このフォーマットをコード側で適宜変更したい場合は、
<?php the_time('H:i'); ?>
のように、()の中に希望のフォーマットを宣言することで変更できます。
日付・時刻のフォーマットを宣言するルールについては、PHPの基本ルールに則っているので、↓の記事を参考にしてくださいね。
https://www.php.net/manual/ja/datetime.format.php
the_date : 記事の公開日時位を出力
the_date
もthe_time
と同じように記事の公開日時を表示する関数です。
基本は下記のように使います。
<?php the_date(); ?>
()の中で希望のフォーマットを入れて、日時の表示形式を変更できる点もthe_time
と同じです。
ただし、the_date
は1つ注意すべき癖があります。
もし閲覧中のページに、同じ日に投稿された記事が複数ある場合、最初の記事でのみ日時を表示します。
そのため、記事の一覧ページなどでの使用には向いていませんので、注意が必要です。
the_modified_time : 記事の最終更新日時を出力
記事の最終更新日時を表示してくれる関数がthe_modified_time
。
<?php the_modified_time('Y年m月d日'); ?>
のように、()のなかに希望の日時フォーマットを入れることにより、表示形式をコントロールできます。
この点はthe_date
やthe_time
と同じですね。
the_tags : 記事のタグを出力
記事につけられているタグを表示するにはthe_tags
という関数が使われます。
タグを並べて表示し、かつ各タグへの一覧ページへのリンクも生成してくれるものです。
<?php the_tags(); ?>
と書くと、リンク付きで
Tags: HTML, プログラミング, WordPress
などのように、カンマ区切りで表示してくれます。
デフォルトでは頭に「Tags:」と追記されてしまうのですが、
<?php the_tags('', ',', ''); ?>
とすることで、
HTML, プログラミング, WordPress
のように、頭に何も付けない状態に変更することも可能です。
get_template_directory_uri : ファイルへのパスを取得
テーマファイル内に用意しているファイルへのパス(URL)を取得するときに使う関数です。
テーマファイル内に置いたCSS, JSファイル, 画像などにアクセスするURLは、以下の通りです。https://domain.com/wp-content/themes/テーマファイル名/xxxxxxxx
このうちのhttps://domain.com/wp-content/themes/テーマファイル名/
を生成してくれる関数です。
具体的には以下のように使用します。
<img src="<?php echo get_template_directory_uri(); ?>/images/sample.png" alt="サンプル画像">
すると、最終的には
<img src="https://domain.com/wp-content/themes/テーマファイル名/images/sample.png" alt="サンプル画像">
となるんですね。
get_template_directory_uri
は、あくまでURLを「取得する」だけなので、HTMLとして出力したい場合は必ずecho
を最初につける必要があります。
なお、よくget_template_directory_url
のように最後を「url」で間違えて使ってしまうこともあるので注意してくださいね。
正しくはuri
です。
get_previous_post : 一つ前の記事を取得
single.phpなどで、現在表示している記事の「一つ前の記事」を取得する関数です。
具体的には、現在の記事を基準として、直近の過去で公開された記事の情報が欲しいときに使われます。
get_next_post : 次の記事を取得
get_previous_postと対になる関数で、現在表示している記事の「次の記事」を取得する関数です。
厳密には関数ではないが、よく使われるもの
プログラムとしては「関数」ではないですが、テーマファイル内で記事の情報を取得するときによく使われるものがあります。
WP_Query
指定の条件に該当する記事を取得してくれます。
正しくは関数ではなく「クラス」ではありますが、使用頻度が高いので、ぜひよく使われる関数と一緒に押さえておいてほしいです。
<?php
$args = [
'post_type' => 'post',
'order' => 'DESC',
'orderby' => 'date'
];
$posts = new WP_Query($args);
?>
などという形でよく使用されます。
まず2行目~6行目で、どんな記事を取得するかの設定をしています。
- post_type(記事種別)がpost(投稿)
- order(記事の取得順)がDESC(降順)
- orderby(記事を並べ替える基準)がdate(投稿日)
という意味です。
その設定を $args
としてまとめておきました(変数に代入)。
7行目で、設定値をnew WP_Query($args)
としての後ろの()の中にいれ、設定に従った記事を取得してもらいます。
取得した記事を$posts
として変数に代入(仮置きしている)プログラムですね。
どんな記事を取得するかの設定は、上記のサンプルとして挙げた「記事の種別」「記事の取得順」「記事を並べ替える基準」の3つ以外にもたくさんあります。
get_xxx と the_xxx の違い
ここまで、一通りよく使われる関数などを紹介してきました。
この記事にある関数などを利用すれば、WordPressサイトの基本的な部分はカバーできると思います。
関数の中には「取得するだけ」だったり、「取得して出力までしてくれる」ものがあります。
具体的には、画面に表示するときにecho
がいるのか、いらないのか、ということですね。
これを見分ける一つの方法として、関数名がthe_
で始まっているのか、get_
で始まっているのかを確認すると良いと思います。
基本的に、the_
で始まっているのは「出力」までしてくれます。
get_
だと「取得するだけ」なので、画面に表示させたいときにはecho
が必要です。