4. functions.phpで機能を拡張

4. functions.phpで機能を拡張

WordPressテーマにおいて、functions.phpは非常に重要なファイルです。このファイルは、テーマ独自の機能やWordPressの動作を拡張・調整するためのスクリプトファイルであり、style.cssindex.phpと並ぶテーマ構成の基礎とも言える存在です。

🔍 functions.phpの役割とは?

functions.phpは、テーマにロードされたときに最初に実行されるPHPファイルのひとつです。
このファイルに記述することで、以下のようなことが可能になります:

  • WordPress標準機能のカスタマイズ
  • ウィジェットエリアの登録
  • メニュー機能の追加
  • スタイルシートやスクリプトの読み込み
  • 独自のショートコード追加
  • 投稿タイプやカスタム分類の登録

🛠 基本的なfunctions.phpの書き方

まずは、テーマのディレクトリ直下にfunctions.phpというファイルを作成します。
その中に、以下のような基本構文を記述していきます。

<?php
// テーマのセットアップ
function themery_setup() {
  // タイトルタグの自動挿入を有効化
  add_theme_support('title-tag');

  // アイキャッチ画像を有効化
  add_theme_support('post-thumbnails');

  // カスタムメニューを登録
  register_nav_menus(array(
    'main-menu' => 'メインメニュー',
  ));
}
add_action('after_setup_theme', 'themery_setup');

このように、add_theme_support()register_nav_menus()などの関数を活用することで、テーマに柔軟な機能追加が可能になります。

📦 CSS・JSの読み込み

WordPressでは、スタイルシートやJavaScriptをテーマに読み込む際に、wp_enqueue_style()wp_enqueue_script()を使用します。functions.phpに次のように記述します。

function themery_enqueue_scripts() {
  wp_enqueue_style('main-style', get_stylesheet_uri());
  wp_enqueue_script('main-script', get_template_directory_uri() . '/js/script.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'themery_enqueue_scripts');

こうすることで、HTMLのheadやfooterに正しい方法でリソースが読み込まれ、パフォーマンスの最適化にもつながります。

🧱 ウィジェットエリアの追加

ウィジェットとは、WordPressの管理画面からドラッグ&ドロップでサイドバーやフッターなどに機能を追加できる便利な仕組みです。以下のコードをfunctions.phpに追加することで、独自のウィジェットエリアを登録できます。

function themery_widgets_init() {
  register_sidebar(array(
    'name'          => 'サイドバー',
    'id'            => 'sidebar-1',
    'before_widget' => '<div class="widget">',
    'after_widget'  => '</div>',
    'before_title'  => '<h3>',
    'after_title'   => '</h3>',
  ));
}
add_action('widgets_init', 'themery_widgets_init');

💡 ちょっと便利な関数も

functions.phpを使えば、自作の便利関数を追加することもできます。たとえば、記事の抜粋を好きな文字数で出力する関数なども簡単に定義できます。

function themery_custom_excerpt($length = 50) {
  return wp_trim_words(get_the_content(), $length);
}

このような関数を用意しておけば、テンプレート内で<?php echo themery_custom_excerpt(); ?>のようにして再利用できます。

まとめ

  • functions.phpはテーマの心臓部のひとつ
  • テーマの機能追加や動作の制御が可能
  • スタイルやスクリプトの正しい読み込みもここで行う
  • 保守性や拡張性の高いテーマ作りに必須

THEMERY(テーマリー)では、このようなfunctions.phpの基礎から応用まで丁寧に解説していきます。
少しずつ機能を追加しながら、あなたのオリジナルテーマをどんどん進化させていきましょう。

次は「WordPressループの理解と活用」について学んでいきましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です