2026年8月27日

2026年8月27日

WordPressのフッターをカスタマイズする方法・コピーライト・ウィジェット・スクリプト

はじめに

「フッターのコピーライトを変更したい」「フッターにトラッキングコードを追加したい」——WordPressのフッターは子テーマのオーバーライドとフックを組み合わせることで、テーマ更新に影響されずカスタマイズできます。

症状・原因

フッターのカスタマイズで最も多い失敗は、親テーマのfooter.phpを直接編集することです。テーマ更新で変更が上書きされます。子テーマのfooter.phpオーバーライドまたはフィルターフックを使う方法が安全です。

解決手順

ステップ1:wp_footer()フックにコードを追加する

// functions.phpからフッターにコードを追加
// → テーマのfooter.phpを編集せずに追加できる

// トラッキングコード(Google Analytics等)を追加
add_action( 'wp_footer', function() {
    if ( is_user_logged_in() ) return; // 管理者のアクセスは除外
    ?>
    <script>
    // アナリティクスコード
    </script>
    <?php
} );

// フッターにカスタムHTMLを追加
add_action( 'wp_footer', function() {
    echo '<div id="cookie-notice" style="display:none;">
        <p>このサイトはCookieを使用しています。
        <button id="accept-cookie">同意する</button></p>
    </div>';
}, 100 ); // 優先度100で最後に実行

ステップ2:子テーマでfooter.phpをオーバーライドする

# 子テーマにfooter.phpをコピー
cp wp-content/themes/parent-theme/footer.php \
   wp-content/themes/parent-theme-child/footer.php

# 子テーマのfooter.phpを編集(テーマ更新の影響を受けない)
// 子テーマのfooter.php(最小限の例)
<footer class="site-footer">
    <div class="footer-widgets">
        <?php
        // フッターウィジェットエリアを表示
        if ( is_active_sidebar( 'footer-widgets' ) ) {
            dynamic_sidebar( 'footer-widgets' );
        }
        ?>
    </div>

    <div class="footer-bottom">
        <p class="copyright">
            &copy; <?php echo date( 'Y' ); ?>
            <a href="<?php echo home_url(); ?>">
                <?php bloginfo( 'name' ); ?>
            </a>
            All Rights Reserved.
        </p>
        <?php
        // フッターナビゲーション
        wp_nav_menu( [
            'theme_location' => 'footer',
            'menu_class'     => 'footer-nav',
            'depth'          => 1,
            'fallback_cb'    => false,
        ] );
        ?>
    </div>
</footer>
<?php wp_footer(); // 必須!省略するとスクリプトが読み込まれない ?>
</body>
</html>

ステップ3:コピーライト文をフィルターで変更する

// テーマによってはフィルターでコピーライトを変更できる
// 例: Twenty Twenty-Oneテーマ
add_filter( 'twentytwentyone_footer_text', function( $footer_text ) {
    return '&copy; ' . date( 'Y' ) . ' ' . get_bloginfo( 'name' )
        . ' | <a href="/privacy-policy/">プライバシーポリシー</a>';
} );

// 汎用的にfooter_powered_by_textを変更
add_filter( 'admin_footer_text', function() {
    return '運営: ' . get_bloginfo( 'name' );
} );

ステップ4:フッターウィジェットを複数カラムで表示する

// functions.phpにフッターウィジェットエリアを3列で登録
add_action( 'widgets_init', function() {
    for ( $i = 1; $i <= 3; $i++ ) {
        register_sidebar( [
            'id'            => 'footer-col-' . $i,
            'name'          => 'フッターカラム ' . $i,
            'before_widget' => '<div class="footer-widget">',
            'after_widget'  => '</div>',
            'before_title'  => '<h4 class="footer-widget-title">',
            'after_title'   => '</h4>',
        ] );
    }
} );
// footer.phpでグリッド表示
echo '<div class="footer-widgets-grid">';
for ( $i = 1; $i <= 3; $i++ ) {
    echo '<div class="footer-col">';
    if ( is_active_sidebar( 'footer-col-' . $i ) ) {
        dynamic_sidebar( 'footer-col-' . $i );
    }
    echo '</div>';
}
echo '</div>';

ステップ5:フッタースクリプトを条件付きで読み込む

// 特定ページのみフッタースクリプトを読み込む
add_action( 'wp_enqueue_scripts', function() {
    // お問い合わせページのみCF7スクリプトを読み込む
    if ( ! is_page( 'contact' ) ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
    }

    // 商品ページのみスライダーを読み込む
    if ( is_singular( 'product' ) ) {
        wp_enqueue_script(
            'product-slider',
            get_stylesheet_directory_uri() . '/js/slider.js',
            [ 'jquery' ],
            '1.0',
            true // フッターで読み込み
        );
    }
} );

注意事項

  • wp_footer()の呼び出しはタグの直前に必須です。省略するとWordPressが追加するJavaScriptが読み込まれず、管理バー・Gutenbergブロック・プラグインが正常に動作しなくなります。
  • フッターのHTMLを直接テーマファイルに書き込む代わりに、できる限りウィジェットを使うことで、管理画面からノンコーダーが編集できる柔軟なサイトになります。
  • footer.phpをオーバーライドした子テーマを使っている場合、親テーマのメジャーアップデートで追加されたフッター機能が子テーマに反映されない点に注意してください。

まとめ

フッターカスタマイズは「wp_footerフックでコード追加→子テーマでfooter.phpオーバーライド→フッターウィジェット複数カラム→条件付きスクリプト読み込み」の組み合わせが最も安全です。テーマ更新に強い実装を心がけましょう。関連記事:WordPressのナビゲーションメニューをカスタマイズする方法WordPressでウィジェットをカスタマイズする方法

お気軽にご相談ください

お見積りへ お問い合わせへ