WordPressのfunctions.phpとは?編集例と反映されない場合の対処法
Wakka Inc.のWebテクニカルディレクターの安藤です。
今日は基礎編としてWordPressのカスタマイズでよく使うfunction.phpについてご説明します。WordPressのテーマには、functions.phpというファイルが必ず含まれています。テーマを構成している重要なファイルで、WordPressサイトをカスタマイズする際に必ず聞くファイル名です。
まだWordPressに慣れていない方の中には、functions.phpが重要とされる理由やどのような役割を担っているのか知らない人もいるのではないでしょうか。しっかりと把握することができれば、カスタマイズをするときにその知識が必ず役立つはずです。そこで、今回はfunctions.phpの基本概要やできること、5つの機能拡張テクニックについて解説しますのでぜひご覧ください。
WordPressはヘッドレスCMSの導入がおすすめです。セキュリティ対策や高速化に効果があります。
「あなたにピッタリのヘッドレスCMS選定ガイド」でヘッドレスCMSの特徴と自社に合うかどうかの診断をすることができます。
ヘッドレスCMSの選定にお悩みの方へ。
自社に必要なヘッドレスCMSがわかる下記資料もぜひご確認ください。
独自選定の代表的なヘッドレスCMSの特徴をもとに、誰でもヘッドレスCMSの選定ができるポイントを押さえた資料を作成しました。
WordPressのfunctions.phpとは?
『functions.php』とは、WordPressの機能を拡張したり、変更したりできるファイルです。WordPress特有のファイルと言っても差し支えないでしょう。
基本的には、PHPやテーマに組み込まれている関数を呼び出し、独自の関数を定義するケースが多いです。また、functions.phpで定義した変数はグローバル変数になります。
そのため、テンプレート内であれば、ほかのファイルから呼び出しをすることも可能です。functions.phpはテーマファイルの中で1番はじめに読み込まれるという特徴を持ちます。そのため、何かを出力するコードを書くことはありません。また、その特徴を活かし、テーマの初期化も行うことが可能です。
functions.phpはテーマのどこにあるの?
functions.phpはテーマファイルの中にあります。WordPressのデフォルトテーマ「Twentyシリーズ」の場合、functions.phpがある場所はtwentytwentyoneフォルダー内です。
スタイルシートやindex.phpと同じ階層になります。編集方法は大まかにわけて2つあります。具体的な方法は下記です。
- ファイルを直接編集する
- 管理画面から編集する
それぞれの編集方法について解説します。
ファイルから直接編集する方法
ファイルから直接編集する場合、テーマフォルダーに直接アクセスして変更を加えます。Atomなどエディタを使用するのが一般的です。
また、テスト環境の場合、テキストエディタなどで開いて編集することができます。
管理画面から編集する方法
管理画面から編集する場合の手順は下記の通りです。
1.管理画面のサイドバーから「外観」→「テーマエディター」をクリックします。
2.右側のテーマファイルの中からfunctions.phpを選択してください。
3.赤枠のエディター内で編集することができます。
functions.phpでできること
functions.phpでできることは、下記の3つです。
- ショートコードの作成ができる
- クイックボタンの追加と削除ができる
- ログイン画面のカスタマイズができる
- 検索結果の表示順をカスタマイズ
それぞれのできることについて詳しく解説します。
ショートコードの作成
1つ目がショートコードの作成です。ショートコードとは、WordPress内でコードを呼び出すことができる機能を意味します。
つまり、同じコードを記事や固定ページで使いまわしができるというわけです。タイトルの呼び出しやパーマリンクの取得を短いコードで実現できるので作業効率がアップします。
ショートコードはfunctions.php内で関数を定義・追加し、記事の投稿画面等でショートコードを呼び出すのが一般的です。関数の定義の仕方とショートコードの例は下記の通りになります。
<関数の定義>
function 関数名(){処理}
add_shortcode(‘ショートコード名’ , ‘関数名’)
<ショートコード>
[ショートコード名]
クイックボタンの追加及び削除
2つ目はクイックボタンの追加と削除です。クイックボタンとは、投稿画面のビジュアルエディター上部にあるボタンのことを意味します。
投稿画面には、「b」や「i」、「img」などのボタンが並んでいるのを一度は見たことがある方も多いのではないでしょうか。これがクイックボタンです。
クイックボタンを定義することで、記事の作成が楽になります。例えば、重要な部分にオレンジ色のマーカーを引きたい場合、その都度コードを書くのは不便です。そこで登場するのがクイックボタンです。
オレンジ色のマーカーを引くことができるクイックボタンをあらかじめ定義しておけば、強調したい文字を選択し、クイックボタンをクリックするだけでオレンジ色のマーカーで文字が装飾されるのです。
記事を投稿する際、同じCSSコードを使い回す機会は非常にたくさんあります。もし、装飾の時間を短縮することができれば、その時間を記事の執筆に割り当てることが可能です。これにより、投稿作業の効率化を期待することができるでしょう。クイックボタンの追加は、functions.php内で関数を定義し、アクションを追加するだけで実現可能です。具体的な方法は下記の通りです。
function 関数名(){
QTags.addButton( id, display, arg1, arg2, access_key, title, priority, instance ); } add_action(‘admin_print_footer_scripts’, ‘関数名’)
また、クイックボタンはAddQuicktagという有名なプラグインで作成することができます。管理画面からTHMLやCSSコードを追加するだけで実現することができるので、できるだけプラグインを使ったほうが便利でしょう。
ログイン画面のカスタマイズ
3つ目はログイン画面のカスタマイズです。ログイン画面は、管理画面にログインする際にユーザー名やパスワードを入力する画面のことになります。具体的には下記のようなカスタマイズをすることが可能です。
- CSSコードでロゴや背景、入力フォームなどの装飾
- ロゴのリンク先の変更
- ログインエラー時の処理
クイックボタンやショートコードと同様に、関数を定義してアクションを追加すればカスタマイズできます。
function 関数名(){
処理
}
add_action( ‘login_enqueue_scripts’, ‘関数名’ );
検索結果の表示順をカスタマイズ
WordPress内の検索結果の表示順をfunctions,phpの関数を使ってカスタマイズすることもできます。
例えばTOPページのみ5件を表示させたいが他のページでは表示件数は10件で良い、といったような場合、ただ同一のコードを使っただけでは思い通りにいかなくなってしまいます。そこでfunctions.phpで設定した、各ページに表示件数を分けられる命令が以下のようになります。
functions.phpを使った3つの機能拡張テクニック
サイトの運用をはじめる前に、functions.phpであらかじめ拡張しておいたほうがいい機能が3つあります。拡張することで運用の負担が減るので、ぜひ参考にしてください。
投稿ページのみアイキャッチ画像を追加する
固定ページは会社情報やお問い合わせ、事業情報など1ページで完結します。また、投稿ページとは、内容が異なるため、アイキャッチ画像が設置されると好ましくないケースも多いです。そのため、アイキャッチ画像は投稿ページのみ適用されるように設定します。
add_theme_support('post-thumbnails',array('post'));
そうすることで、アイキャッチ画像が全体に適用されなくなるので、固定ページの作成がしやすくなるでしょう。
絵文字を削除する
WordPressには、標準で絵文字機能が内蔵されています。しかし、絵文字を表示するためには、一つ一つ変換しなければなりませんので、表示速度に影響を与えてしまうのです。
表示速度が低下すると検索順位に影響を与えますので、アクセス数を増やしたいのであれば極力避けるのが好ましいでしょう。絵文字の削除はfunctions.phpに下記のように記述します。
remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
remove_filter(‘comment_text_rss’, ‘wp_staticize_emoji’);
remove_filter(‘wp_mail’, ‘wp_staticize_emoji_for_email’);
remove_action(‘admin_print_styles’, ‘print_emoji_styles’);
remove_filter(‘the_content_feed’, ‘wp_staticize_emoji’);
remove_action(‘admin_print_scripts’, ‘print_emoji_detection_script’);
プラグインを入れることも可能ですが、上記のようなレベル感で対処できるため、わざわざプラグインを使用してサイトが重くなってしまうことは避けましょう。
アドミンバーを非表示
function disable_admin_bar(){
return false;
}
add_filter( ‘show_admin_bar’ , ‘disable_admin_bar’);
アドミンバーを消すためにプラグインを入れる方もいます。しかし、上記のコードで簡単に削除できるため、容量を増やさないためにも直接コードで入力するのがおすすめです。
ただし、アドミンバーを非表示にするためには注意するべき点があります。フロント画面側で非表示になるため、WordPressのダッシュボードへの移動ができなくなるのです。非表示にする際は管理画面へのブックマークを忘れないようにしましょう。
functions.phpの編集が反映されない場合の対処法
functions.phpを編集しても、上手く反映されない場合もあります。このような際には以下の対処法を行うと解決することが多いため、一度1つずつ試してみてください。
1.style.cssでコードのミスをチェック
まずはstyle.cssでコードが正しく書けているかをチェックしましょう。子テーマを編集する際にはテーマ名が間違っていないか、親テーマがしっかり記述されているかどうかを確認してください。
2.WordPressで子テーマを有効化
WordPressの管理画面メニューから子テーマを有効化します。手順は以下の通りです。
- WordpPressの管理画面メニューにある「外観」から「テーマ」を選択する
- テーマ一覧画面で「子テーマ」が表示されていることを確認する
この手順で有効化を行うと、子テーマが有効化されます。
3.編集前のデータをアップロードし再度編集
カスタマイズしたいファイルをアップロードし、再度編集します。「子テーマ」のファイルにアップロードしてください。
一度ダウンロードしたものをデスクトップなどに展開しておき、もう一度ドラッグアンドドロップするのがやりやすいです。
注意しておきたいのが、テーマをアップロードしたときには「親テーマではなく子テーマのデータが優先される」ことです。親テーマをいくら変えても子テーマが追加されればその設定に従われるため、編集する際は親テーマをまず全てコピーしてから、追記や変更をしたい部分だけ子テーマを編集してアップロードするようにしましょう。
サイトリニューアルでお困りの方は、ぜひ弊社Wakka Inc.にお任せください。
functions.phpを編集する際の3つの注意点
システムの中核ともいえる部分を編集するだけあって、注意しておくべき点は複数あります。以下で詳しく解説します。
必ずバックアップを取っておく
functions.phpを編集するときだけに限りませんが、何かオンラインで作業をする時にはバックアップを取っておくことを忘れないようにしましょう。WordPressのデータをローカルかクラウドに保存し、万が一の時に備えるようにしてください。
functions.phpへのコピペは厳禁
functions.phpは気軽な気持ちで編集してはいけないファイルです。functions.phpはファイル全体がプログラムになっているため、一文字でも間違えてしまうと画面が真っ白になる可能性が非常に高くなっています。
実際に同様のトラブルも多く発生しています。
ダウンロードしたfunctions.phpファイルは「テキストエディタ」と呼ばれるツールで編集しましょう。例えば秀丸エディタやサクラエディタなどです。
不用意にスペース・改行を入れない
コピペは厳禁、の部分でも少し触れたように、functions.phpはファイル全体がプログラムです。そのため、一度ダウンロードしたら不用意にスペースや改行を入れないようにしましょう。
不要なスペースや改行を入れるとプログラムが正常に作動しなくなります。特に初心者が扱う際には気をつけたいものです。
functions.phpをカスタマイズしてWordPressサイトの機能を拡張しよう
今回は、基礎編としてfunctions.phpの概要やできること、拡張しておきたい機能について解説しました。
WordPressをアレンジする際、必ずコードを入力するファイルになるので、触る機会も多いです。そのため、できることや定義の仕方を知っておくと非常に役立つでしょう。
ヘッドレスCMSの選定にお悩みの方へ。
自社に必要なヘッドレスCMSがわかる下記資料もぜひご確認ください。
独自選定の代表的なヘッドレスCMSの特徴をもとに、誰でもヘッドレスCMSの選定ができるポイントを押さえた資料を作成しました。
学生時代にWebサイトを自作したことがきっかけでWebの世界に。制作会社でデザイン、WordPressテーマ開発の実務を経て、テクニカル・ディレクターとして大規模サイト構築のディレクションを経験。2021年からWakka Inc.の日本拠点でWebディレクターとして参画。最近はブロックエディタになったWordPressをもう一度、勉強しています。