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">
© <?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 '© ' . 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()の呼び出しは