MENU

WordPressのfunctions.phpで機能を追加する方法|プラグイン不要カスタマイズ入門

WordPressのfunctions.phpで機能を追加する方法|プラグイン不要カスタマイズ入門

WordPressをもっと自分好みにしたいけれど、プラグインを増やすとサイトが重くなりそう……そう感じている方は多いのではないでしょうか。実は、functions.phpというファイルを使えば、プラグインなしでWordPressにさまざまな機能を追加できます。本記事では、functions.phpの基本的な役割から安全な編集方法、すぐに使えるカスタマイズコード5選まで、初〜中級者の方に向けてわかりやすく解説します。

目次

functions.phpとは?WordPressカスタマイズの要となるファイル

functions.phpは、WordPressのテーマフォルダ内に存在するPHPファイルで、テーマ固有の機能を定義・追加するための設定ファイルです。WordPressが起動するたびに自動的に読み込まれるため、ここに書いたコードはサイト全体に適用されます。

プラグインと似たような役割を果たしますが、functions.phpを活用することで不要なプラグインを削減でき、サイトの読み込み速度やセキュリティの向上につながります。ただし、コードの記述ミスがあるとサイトが表示されなくなることがあるため、正しい手順で編集することが重要です。

安全に編集するための2つの鉄則

functions.phpを編集する前に、必ず以下の2点を守るようにしてください。

①必ず子テーマのfunctions.phpに追記する

親テーマのfunctions.phpを直接編集してはいけません。テーマをアップデートすると、加えた変更がすべて上書きされてしまいます。必ず子テーマを作成し、子テーマのfunctions.phpにコードを追記しましょう。SWELLを使用している場合は、公式配布の「SWELL子テーマ」を導入するのが最も手軽です。

②編集前に必ずバックアップを取る

PHPファイルは1文字のミスでサイトが真っ白になる(ホワイトスクリーンエラー)ことがあります。FTPクライアントやサーバーのファイルマネージャーを使って、編集前のfunctions.phpを必ずダウンロードしておきましょう。可能であれば、テスト環境で動作確認してから本番環境へ反映するのが理想的です。

すぐに使えるカスタマイズコード5選

ここからは、コピー&ペーストで使える実用的なコードを5つご紹介します。子テーマのfunctions.phpの末尾に追記するだけで動作します。

①フロントエンドの管理バーを非表示にする

ログイン中にページ上部に表示される管理バーを、フロントエンド(一般公開面)だけ非表示にするコードです。ブログの見た目を確認したいときや、デザインの邪魔になる場合に便利です。

add_filter( 'show_admin_bar', '__return_false' );

②ログイン失敗時のエラーメッセージを変更する

デフォルトでは「パスワードが正しくありません」など、具体的なエラーが表示されます。攻撃者へのヒントになるため、汎用的なメッセージに変更してセキュリティを高めましょう。

function custom_login_error_message() {
    return 'ログイン情報が正しくありません。もう一度お試しください。';
}
add_filter( 'login_errors', 'custom_login_error_message' );

③記事の抜粋(excerpt)の文字数を変更する

WordPressのデフォルト抜粋は英語基準のため、日本語では文字数が合わないことがあります。以下のコードで任意の文字数に変更できます。「80」の数値はお好みで調整してください。

function custom_excerpt_length( $length ) {
    return 80;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

④管理ダッシュボードにカスタムウィジェットを追加する

WordPress管理画面のダッシュボードにオリジナルのウィジェットを追加できます。サイト運営のメモや確認事項を表示するのに役立ちます。

function my_dashboard_widget_content() {
    echo '<p>今日も記事執筆をがんばりましょう!</p>';
}
function add_my_dashboard_widget() {
    wp_add_dashboard_widget(
        'my_custom_widget',
        '運営メモ',
        'my_dashboard_widget_content'
    );
}
add_action( 'wp_dashboard_setup', 'add_my_dashboard_widget' );

⑤不要なスクリプトを無効化してサイトを軽量化する

使っていない絵文字スクリプトやoEmbedの機能を無効化することで、ページのリクエスト数を減らし、表示速度の改善につなげられます。

function remove_wp_unnecessary_scripts() {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
    remove_action( 'wp_head', 'rest_output_link_wp_head' );
}
add_action( 'init', 'remove_wp_unnecessary_scripts' );

SWELLテーマでfunctions.phpを使うときの注意点

SWELLはカスタマイザーや専用設定パネルから多くのカスタマイズができます。functions.phpでSWELLの設定と同じ内容を二重に記述しないよう注意してください。たとえばSWELLのSEO設定や高速化オプションが管理画面で提供されている場合は、そちらを優先させましょう。

また、SWELLの公式子テーマには最初からfunctions.phpが含まれています。上書きしないよう注意しながら、既存コードの末尾に追記するかたちで編集してください。

まとめ

functions.phpを正しく活用することで、プラグインを増やさずにWordPressの機能を効率よく拡張できます。今回のポイントをおさらいしましょう。

  • functions.phpはテーマ固有の機能を定義するPHPファイルで、サイト全体に反映される
  • 必ず子テーマのfunctions.phpに追記し、親テーマは直接編集しない
  • 編集前には必ずバックアップを取り、ミスに備える
  • 管理バー非表示・ログインエラー変更・抜粋文字数調整・スクリプト無効化など実用的なコードをすぐ使える
  • SWELLユーザーはテーマ設定との重複を避けて運用する

まずは1行で完結する簡単なコードから試してみることをおすすめします。少しずつカスタマイズに慣れることで、WordPressをより自分好みのサイトへと育てていけます。

この記事を書いた人

WEB制作会社勤務
フロントサイドプログラマー兼デザイナー
休みの日はネコと遊ぶか、家の近くのサウナでリフレッシュ
好きな言葉:小さなことからコツコツと

目次