みやちサイト制作所

未経験でもWEBサイト制作で稼ぐためのノウハウまとめ

閉じる

独自テーマ作成の初心者が学ぶべきWordPressの基本は16の関数ほか

WordPressオリジナルテーマ作成に役立つ関数ほか16種類

こんにちは。
WordPress歴5年以上の藤ミヤチです。

初めてWordPressテーマの中身を見たときには、見慣れないPHPコードのオンパレードで

trouble
何が何やら……

と戸惑ってしまうことが多いですよね。

WordPressでは、

  • 記事の情報を取得する
  • 投稿日を表示する
  • 一つ前の記事を取得する

などの、よく使われるプログラムは「関数」としてまとめられています。

関数とは、平たく言うと、あらかじめ決められた言葉をPHPで書くことで、指定のプログラムを勝手に実行してくれるものです。

WordPressテーマの中でよく使われる関数などをあらかじめ知っておくことで、

ok
ここでは、こんなことをしてるんだ!

という当たりがつけやすくなります。

そこで、この記事では初心者だからこそ抑えておいてほしい、よく使われる関数などの一覧をまとめました。

ここにある関数を抑えておくとオリジナルテーマの作成のときにも役立つので、ぜひ知っておいてくださいね。

【この記事の目次】

よく使われる関数

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; ?>

の間で使う必要があります。

<?php the_content(); ?>

と書いても

question
あれ、本文が表示されないな?

と思ったら注意してみてくださいね。

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>みやちサイト制作所</h1>

のようにサイト名が表示されます。

なお、サイトのキャッチフレーズは「description」のため、下記の通りになります。

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

【WordPress】bloginfo / get_bloginfo – サイト名などの基本情報を表示

2020.06.15

WordPressサイトの基本情報を表示するには、bloginfo() もしくは get_bloginfo() が使われます。 サイト名サイトのキャッチフレーズサイトアドレ…

the_time : 記事の公開時間を出力

記事が公開された時間を表示する関数が the_time です。

<?php the_time(); ?>

とすると、「10:36 pm」のような形で、投稿時間が表示されます。

時間の表示フォーマットは、ダッシュボード(管理画面)の「設定 > 一般設定」内にある時刻フォーマットが採用されています。

なお、このフォーマットから変更したい場合は、

<?php the_time('H:i'); ?>

のように、()の中に希望のフォーマットを宣言することで変更できます

日付・時刻のフォーマットを宣言するルールについては、PHPの基本ルールに則っているので、↓の記事を参考にしてくださいね。

PHPで日付や時刻をフォーマットする(1月1日、1/1など)

PHPで日付や時刻をフォーマットする(1月1日、1/1など)

PHPの日付や時間を所定のフォーマットで出力する方法で、date関数とDateTimeクラスでのやり方、フォーマット一覧表をご紹介。曜日の表示などにも触れています。

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 = array(
    '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つ以外にもたくさんありますので、ぜひ下記の記事を参考にチェックしてみてください。

関数リファレンス/WP Query - WordPress Codex 日本語版

関数リファレンス/WP Query – WordPress Codex 日本語版

get_xxx と the_xxx の違い

ここまで、一通りよく使われる関数などを紹介してきました。

この記事にある関数などを利用すれば、WordPressサイトの基本的な部分はカバーできると思います。

関数の中には「取得するだけ」だったり、「取得して出力までしてくれる」ものがあります。

具体的には、画面に表示するときに「echo」がいるのか、いらないのか、ということですね。

これを見分ける一つの方法として、関数名が「the_」で始まっているのか、「get_」で始まっているのかを確認すると良いと思います。

基本的に、「the_」で始まっているのは「出力」までしてくれます。

「get_」だと「取得するだけ」なので、画面に表示させたいときには「echo」が必要です。

miyachi
get と the の違いを覚えておくだけで、迷うことが少なくなるよ

サイトを効率的に作るための
秘蔵ノウハウを発信中

note

開発の基本的な部分はもちろん、コードをより素早く理解して書くための「コツ」をまとめました。15年の開発経験に裏付けられたノウハウをどうぞ!

詳しくはこちら

記事をシェア