WordPressを使い慣れてくると、テーマをカスタマイズしたり、さらにはテーマを自作したくなる場合もあります。
しかし、そのためには「PHP」「関数」といった、専門的な知識が必要になってきます。
本記事では、WordPressのテーマの自作やWordPressのカスタマイズに初めてチャレンジしたい人向けに、これらの専門用語の解説やよく使われる関数、さらにショートコードと呼ばれる便利なテクニックについても紹介します。
- ※本記事で紹介している情報は執筆時点のものであり、閲覧時点では変更になっている場合がございます。また、ご利用の環境(ブラウザ、サーバー、プラグイン、テーマ、またはそのバージョンや設定、WordPress本体のバージョンや設定など)によっては本記事の情報通りに動作しない場合がございます。あらかじめご了承ください。
目次
WordPressはPHPで開発されたソフトウェア
WordPressは、「PHP」というプログラミング言語で開発されたソフトウェアです。
その構造は、大きく分けて以下の4つの要素で成り立っています。
- WordPress本体
- テーマ
- プラグイン
- データベース
このうち、データベースを除く3つの要素でPHPが使われています。
WordPressのインストールにPHPが必須だったり、バージョンアップの際にPHPの更新を求められる場合があったりするのも、WordPressの大部分がPHPで開発されているからです。
WordPressで既存のテーマを使用してWebサイトを構築するだけなら、PHPのような専門的な知識は必要ありません。
しかし、WordPressのテーマを自身で作成する場合やカスタマイズをしたい場合は、PHPの知識がある程度求められます。
PHPとは
PHPは、主にWebサイト向けのソフトウェア開発を目的としたプログラミング言語です。
プログラムをあらかじめサーバーに配置しておいて、サーバー上で実行します。
Webサイトには、「静的なWebサイト」と「動的なWebサイト」があります。
静的なWebサイトは、アクセスするとサーバー上にあるHTMLファイルの内容がそのまま表示される仕組みです。
HTMLファイルを編集しない限り、いつアクセスしてもページごとに固定の内容が表示されます。
これに対し、動的なWebサイトは同じページでも異なる内容を表示できるのが特徴です。
サーバー上にソフトウェア(プログラム)が設置されていて、表示内容をその都度変えられる仕組みになっています。
アクセスがあるたびにソフトウェアが動作して、リアルタイムでHTMLが生成されるのです。
PHPは、動的なWebサイトの開発に適した以下のような処理を得意としています。
- HTMLの生成
- ブラウザとの情報のやり取り
- データベースの操作
動的なWebサイトを実現するPHPは、WordPressの機能にも活用されています。
たとえば、一覧ページで記事を新着順に並べたり、同じカテゴリー内の記事や前後の投稿にリンクしたりといった機能です。
Webサイト内を検索できる「検索ウィジェット」や、記事の公開日を指定する「予約投稿」なども、WordPressがPHPで開発されているからこそ実現できています。
WordPressの関数とは
PHPをはじめとする様々なプログラミング言語には、「関数」を作成する仕組みが備わっています。
関数とは、「定型の処理を再利用できる形にまとめたもの」のことです。
よく使う機能をあらかじめ関数にしておけば、似たようなソフトウェアを毎回ゼロから開発しなくても済むというわけです。
WordPressも、関数を最大限に活用して開発されています。
これらの関数はWordPress本体に内蔵されており、その一部は仕様(仕組みや使い方)も公開されています。
そのため、テーマを作る際にも利用可能です。
たとえば、記事のタイトルや本文を表示したり、前後の記事のURLを取り出してリンクしたりといった関数が用意されています。
ほかにもWebサイトの構築でよく使う便利な機能が関数として定義されているので、どのような関数があるかを知っておけば、WordPressテーマの自作やカスタマイズでできることも広がるでしょう。
WordPressで関数の記述をする方法
WordPressの関数を応用したプログラムを自分で記述するには、「functions.php」というファイルを編集する必要があります。
ここからは、「functions.php」を編集する方法や、その際の注意点などについて説明します。
functions.phpとは
「functions.php」は、WordPressのWebサイトに固有の機能を追加するためのファイルです。
拡張子が「.php」となっていることからも、中身はPHPで記述されているとわかるでしょう。
WordPressに組み込まれている関数を利用して、「functions.php」には以下のようなものを自由に追加することができます。
- 各ページに挿入する独自の表示項目
- 管理画面に挿入する独自の設定項目
- 独自のショートコード
- 独自の関数
なお、テーマのディレクトリ内に配置された「functions.php」は、そのテーマが有効化されたときだけ機能する仕組みになっています。
functions.phpファイルへのアクセス方法
WordPressテーマ内にある「functions.php」ファイルには、2つのアクセス方法があります。
1つ目は、FTPなどでサーバーにアクセスし、WordPressが格納されているディレクトリからサブディレクトリをたどってアクセスする方法です。
「wp-content」、「themes」とたどっていくと、インストール済みのテーマのディレクトリが一覧できます。
それぞれのテーマのディレクトリ内に「functions.php」があるので、編集したいテーマのものを選びましょう。
2つ目は、WordPressの管理画面からアクセスする方法です。
「外観」メニューから「テーマエディター」を選択してみましょう。
すると、現在使用中のテーマに含まれるファイルが表示されます。
画面の右側にファイルの一覧があり、「テーマのための関数(functions.php)」を選べば「functions.php」が表示されます。
この画面では、ファイルの内容をその場で編集・保存することも可能です。
functions.php編集時の注意点
「functions.php」の編集には、注意すべきポイントがあります。実際に編集をはじめる前に、以下について確認しておきましょう。
バックアップを取る
「functions.php」を編集する前には、バックアップを取っておくことが大切です。
PHPなどのプログラムは、ほんの少しの記述ミスがあるだけでも正常に動作しないことがあるためです。
場合によってはページが真っ白になってしまったり、管理画面にログインできなくなったりすることも考えられます。
バックアップすべき範囲は、テーマにどのような機能を追加しようとしているのかによって変わってきます。
通常は、テーマのファイルをディレクトリごとバックアップしておけば安心でしょう。
編集後に問題が発生してしまったときは、「functions.php」をバックアップした時点のものに戻せるようになります。
WordPressのバックアップ方法についてはこちらの記事でくわしく解説しています。
余計なスペースや改行を入れない
PHPのプログラムは、開始箇所に「<?php」、終了箇所に「?>」という特別な記号を挿入して記述します。
これは「PHPタグ」と呼ばれる書式で、PHPプログラムの処理結果とHTMLタグをミックスして出力するためのものです。
<h2><?php the_title(); ?></h2>
たとえば、このように記述すれば記事のタイトルをh2タグで表示できます。
なお、「the_title」の部分については、のちほど説明します。
<h2><?php the_title(); ?></h2>
PHPプログラムを記述する際は、この例のようにスペースや改行を入れて見やすく整形しても構いません。
ただし、自由に整形できる範囲はPHPタグの内側に限られます。
<h2> <?php the_title(); ?> </h2>
これは、PHPタグの外側を整形してしまっている例です。
このような書き方をすると、最終的な出力に余計なスペースや改行が残ってしまい、ブラウザで表示したときに意図しない空白部分ができてしまうので注意しましょう。
編集後は必ずページをチェックする
「functions.php」を編集したあとは、必ずブラウザで表示をチェックしましょう。
このとき、カスタマイズした箇所だけでなく、とくに手を加えていない箇所についても問題がないことを確認するのがポイントです。
「functions.php」はWordPressのテーマ全体に関わるファイルなので、編集によって思わぬ部分の表示が変わってしまうことも考えられます。
また、表示チェックの際にはブラウザのキャッシュが影響する可能性もあります。
念のため、キャッシュをクリアしてからチェックをおこなうとよいでしょう。
よく使うWordPressの関数一覧
ここからは、WordPressの関数を紹介していきます。
利用可能な関数の数はたいへん多いので、ここでは以下の4種類に分類して、テーマ開発でよく使われるものをピックアップしました。
投稿の出力で使う関数 |
|
---|---|
テンプレートの呼び出しで使う関数 |
|
URL出力に使う関数 |
|
条件分岐タグ |
|
投稿の出力で使う関数
WordPressの投稿は、個別に表示される場合と一覧で表示される場合があります。
そのため、投稿を出力するための関数は、1ページ内に表示する投稿の数だけループしながら使用します。
これは、PHPの「while構文」を使ったシンプルなループの記述例です。
この例のように、ループの内側には、現在の投稿の情報を取得する「the_post」という関数を必ず記述します。
「the_post」以降では、投稿の内容を出力するための各種関数を使用できます。
以下は、投稿の出力で使用できるおもな関数です。
- the_title:投稿のタイトルを出力する
- the_content:投稿の本文を出力する
- the_post_thumbnail:投稿のアイキャッチ画像を出力する
- the_time:投稿の日時を出力する
- the_category:投稿が属するカテゴリーのページへのリンクをリストで出力する
- the_tags:投稿につけられたタグのページへのリンクをリストで出力する
テンプレートの呼び出しで使う関数
WordPressのテーマには、「テンプレート」と呼ばれるファイルも含まれています。
テンプレートは、各種ページを出力する際に使われるHTMLのひな形です。
既存のテーマのディレクトリに、どのようなファイルが格納されているのか確認してみましょう。
上の画像は、WordPressに標準搭載されている「Twenty Twenty-One」テーマの中身です。
「functions.php」以外の、拡張子が「.php」のファイルがテンプレートです。
これらのうち「index.php」はすべてのテーマに含まれる必須のテンプレートで、ページ全体のHTMLが記述されています。
このほかに、各ページから読み込まれる共通部分のみを抜き出したテンプレートもあります。
共通部分のテンプレートは、以下の関数で呼び出すことが可能です。
- get_header:「header.php」テンプレートを呼び出す
- get_sidebar:「sidebar.php」テンプレートを呼び出す
- get_footer:「footer.php」テンプレートを呼び出す
なお、呼び出したいテンプレートがテーマに含まれていない場合は、WordPress本体に内蔵されているデフォルトのテンプレートが呼び出されます。
URL出力に使う関数
WordPressのWebサイト内にある別のページにリンクしたいときは、リンク先ページのURLを取得する必要があります。
たとえば、多くのテーマでは、各ページのヘッダー部分にホームページ(トップページ)へのリンクが貼られています。
そのためのURLの取得には、「home_url」という関数が使用されます。
以下は、WordPressテーマで使われることの多い、URL出力のための関数です。
- home_url:ホームページのURLを取得する
- home_url:ホームページのURLを取得する
- previous_post_link:現在の投稿から見て、1つ前の投稿へのリンクを出力する
条件分岐タグ
WordPressのテーマ開発では、「条件分岐タグ」と呼ばれる一連の関数もよく利用されます。
これらは、「条件分岐」を用いた機能をテーマで実現可能にするためのものです。
条件分岐とは
WordPressのテーマ開発では、特定の条件が成立するかどうかによって処理内容を変えたいという場面によく出会います。
たとえば、「トップページにだけスライドショーを表示したい」というケースについて考えてみましょう。
この場合、現在表示中のページがトップページかどうかをチェックする必要があります。
そのうえで、トップページだった場合にだけスライドショー用のHTMLを出力する処理を実行すればよいでしょう。
このように、現在の条件に応じて実行する処理を変えることを「条件分岐」といいます。
WordPressでは条件分岐タグを利用することにより、さまざまな条件をチェックできるようになっています。
よく使う条件分岐タグ
条件分岐タグは、PHPの「if構文」とあわせてよく利用されます。
これは、ユーザーがWordPressにログインしているかどうかによって表示内容を変える例です。
現在の条件をチェックするために、「is_user_logged_in」という条件分岐タグを利用していることがわかります。
以下は、WordPressのテーマ開発でよく利用される条件分岐タグです。
- is_user_logged_in:現在Webサイトを訪問中のユーザーがWordPressにログイン中かどうかをチェックする
- is_front_page:現在表示中のページがホームページかどうかをチェックする
- is_archive:現在表示中のページが一覧ページかどうかをチェックする
- is_page:現在表示中のページが固定ページかどうかをチェックする
- is_admin:現在表示中のページが管理画面かどうかをチェックする
固定ページではショートコードを使おう
WordPressの関数は、「functions.php」ファイルなどに記述するPHPのプログラム内でのみ使用できます。
そのため、固定ページや投稿の本文中では、関数を直接使うことができません。
しかし、ショートコードを利用すれば、間接的に関数を利用することが可能です。
ショートコードとは
ショートコードは、事前に用意したHTMLを固定ページや投稿の本文中に挿入するための仕組みです。
HTMLを出力するPHPの関数を定義しておき、専用の文法で呼び出します。
実体がPHPなので、WordPressの関数を使わなければ実現できないような内容でも出力できるのが特徴です。
また、本文中で繰り返し使いたい定型文があるときにも、ショートコードはよく利用されています。
編集画面で同じような内容を毎回入力するよりも、ショートコードを使ったほうが手間やミスを減らせるためです。
ショートコードの使い方
ショートコードを使うには、あらかじめWordPressのテーマ内に処理内容や名前を定義しておきます。
それを固定ページや投稿の編集画面から呼び出すようにするのです。
ここからは、ショートコードの定義方法や呼び出し方について、例をあげながら説明します。
ショートコードの記述方法
WordPressのテーマにショートコードを追加するには、「functions.php」にPHPの関数を記述します。
ショートコード用の関数には、大きく分けて2通りの記述方法があります。
<?php function myshortcode1_func( $atts ) { $a = shortcode_atts( array( 'tag' => 'div' ), $atts ); $tag = $a['tag']; return "<$tag>Hello!</$tag>"; } ?>
1つ目は、「属性」と呼ばれるパラメータを受け取って、HTMLに変換する関数を定義する方法です。
この例では、「myshortcode1_func」の部分が関数名、「$atts」がパラメータにあたります。
また、パラメータとして受け取ったタグで「Hello!」というテキストを囲んだHTMLを出力しています。
<?php function myshortcode2_func( $atts, $content = '' ) { return "<blockquote>$content</blockquote>"; } ?>
2つ目は、テキストを受け取ってHTMLに変換する関数を定義する方法です。
この例では、「myshortcode2_func」の部分が関数名、「$content」が受け取ったテキストにあたります。
また、「blockquote」タグでテキストを囲んだHTMLを出力しています。
なお、PHPの関数名は、ほかの関数と同じだとエラーになってしまう点に注意しましょう。
重複しないよう、それぞれの関数に固有の名前をつける必要があります。
ショートコードを定義する方法
ショートコードは、PHPの関数を定義しただけでは呼び出すことができません。
WordPressの関数「add_shortcode」を使用して、ショートコード用の関数として登録する必要があります。
上記で説明した2つの関数を登録するには、次のように記述します。
<?php add_shortcode( 'myshortcode1', 'myshortcode1_func' ); add_shortcode( 'myshortcode2', 'myshortcode2_func' ); ?>
この例では、PHPで定義済みの2つの関数を、それぞれ「myshortcode1」と「myshortcode2」という名前で登録しています。
ここで指定した名前は、あとでショートコードを呼び出すときに必要になります。
なお、PHPの関数名と同様、ショートコードの名前も重複させることはできません。
それぞれのショートコードに固有の名前をつけるようにしましょう。
ショートコードの呼び出し方法
WordPressの関数「add_shortcode」で登録したショートコードは、固定ページや投稿から呼び出すことが可能です。
編集画面で本文中にショートコードを書いておけば、その部分が対応する関数の処理結果に置き換えられる仕組みです。
ショートコードを呼び出す際の書き方は、HTMLタグに似ています。
ただし、HTMLタグのように「<」と「>」で囲むのではなく、半角の角カッコを使用します。
上記で説明した1つ目のショートコードは、本文中に次のように書けば呼び出すことが可能です。
[myshortcode1 tag="h3"]
この例では、「tag="h3"」の部分がパラメータとしてPHPの関数に渡されます。
出力されるHTMLは、次のようになります。
<h3>Hello!</h3>
2つ目のショートコードは、次のように呼び出します。
[myshortcode2]こんにちは[/myshortcode2]
この例では、「こんにちは」の部分がPHPの関数に渡されるテキストです。
出力されるHTMLは、次のようになります。
<blockquote>こんにちは</blockquote>
ショートコードを使えば、定型文のようでありながら内容の異なるコンテンツを自在に挿入できることがわかるでしょう。
本記事で紹介した例はシンプルなものですが、より複雑な処理をおこなうショートコードも基本は変わりません。
応用しだいで、WordPressの関数をさらに活用できるようになります。
WordPressの関数 まとめ
テーマに固有の機能を追加するためには、PHPでプログラムを記述する必要があります。
その際には、WordPressの関数や、その使い方についてある程度知っていると役立ちます。
本記事で紹介した内容を参考に、WordPressテーマの自作やカスタマイズに挑戦してみてはいかがでしょうか。
WordPressを始めるならConoHa WINGがおすすめ!
「WordPressでブログやアフィリエイトを始めたい!」
「もっと性能の良いレンタルサーバーに乗り換えたい!」
そんなあなたには、高性能・高速でお得なレンタルサーバーConoHa WINGをおすすめします。
- ConoHa WINGのメリット
-
- サイト表示が速い! 国内最速のレンタルサーバー※
- 初心者も安心! 簡単で使いやすい管理画面
- 安定した稼働! 大量同時アクセスなどの高負荷にも強い
- お得な料金設定! 678円/月~で始められる!
- しかも初期費用が無料! さらに独自ドメインも永久無料!
- ※2024年4月自社調べ
ConoHa WINGは日本マーケティングリサーチ機構による調査で、下記の3部門においてNo.1を獲得しています。
- ConoHa WINGは3つのNo.1を獲得!
-
- アフィリエイター・ブロガーが使いたいレンタルサーバー
- WordPress利用者満足度
- サポートデスク対応満足度
- ※日本マーケティングリサーチ機構調べ 調査概要:2023年2月期_ブランドのイメージ調査
新規のお申し込みはこちら
Webにくわしくない初心者でもたった10分で始められるレンタルサーバー「ConoHa WING」。
とっても簡単だから今すぐ始めちゃいましょう。
また下記の記事では、ConoHa WINGを使ってWordPressを開設する方法を、画像付きでくわしく解説しています。
【WordPressの始め方】初心者でも最短10分でできる!簡単で失敗しない開設方法
- WordPressの始め方
他社レンタルサーバーからお乗換えはこちら
他社のレンタルサーバーをご利用中で、ConoHa WINGにお乗り換えを検討されている方も安心です!
煩雑なレンタルサーバーの移行もかんたんにお乗換えいただけるよう、いくつかのサポートを用意しています。
-
- WordPressかんたん移行ツール
-
他社サーバーでお使いのWordPressを、ご自身でかんたんにConoHa WINGへ移行ができる無料のツールをご用意しています。
- WordPressかんたん移行の詳細
-
- WordPress移行代行
-
移行にかかる作業はすべて専門のプロが代行するので、待っているだけでWordPressを移行できます。
- WING移行代行の詳細
-
- ConoHa WINGへの移行ガイド
-
レンタルサーバーの移行作業は複雑ですが、ConoHa WINGでは移行作業の流れをわかりやすくご紹介しています。
- ConoHa WINGお乗換えガイド