:::: MENU ::::

WordPress個別ページのフッターを新しく作成する

サイドバーと同じくフッターも作り方忘れるのでメモ。

以下、twentyeleven テーマを例に取ります。
twentyeleven_ss

フッター用のサイドバーの定義を新しく作成する。

# vi function.php
register_sidebar( array(
'name' => __( 'Another Footer Area One', 'twentyeleven' ),
'id' => 'sidebar-7',
'description' => __( 'An optional widget area for your site footer', 'twentyeleven' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );

register_sidebar( array(
'name' => __( 'Another Footer Area Two', 'twentyeleven' ),
'id' => 'sidebar-8',
'description' => __( 'An optional widget area for your site footer', 'twentyeleven' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );

register_sidebar( array(
'name' => __( 'Another Footer Area Three', 'twentyeleven' ),
'id' => 'sidebar-9',
'description' => __( 'An optional widget area for your site footer', 'twentyeleven' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );

既存 footer のファイルをコピーして、新しく作るフッターの設定を記述する。

# cp -a footer.php footer-another.php
# vi footer-another.php
get_sidebar( 'another-footer' );

# cp -a sidebar-footer.php sidebar-another-footer.php
# vi sidebar-another-footer.php
# diff sidebar-footer.php sidebar-another-footer.php
17,19c17,19
<   if (   ! is_active_sidebar( 'sidebar-3'  )
<       && ! is_active_sidebar( 'sidebar-4' )
<       && ! is_active_sidebar( 'sidebar-5'  )
---
>   if (   ! is_active_sidebar( 'sidebar-7'  )
>       && ! is_active_sidebar( 'sidebar-8' )
>       && ! is_active_sidebar( 'sidebar-9'  )
25c25
<   <?php if ( is_active_sidebar( 'sidebar-3' ) ) : ?>
---
>   <?php if ( is_active_sidebar( 'sidebar-7' ) ) : ?>
27c27
<       <?php dynamic_sidebar( 'sidebar-3' ); ?>
---
>       <?php dynamic_sidebar( 'sidebar-7' ); ?>
31c31
<   <?php if ( is_active_sidebar( 'sidebar-4' ) ) : ?>
---
>   <?php if ( is_active_sidebar( 'sidebar-8' ) ) : ?>
33c33
<       <?php dynamic_sidebar( 'sidebar-4' ); ?>
---
>       <?php dynamic_sidebar( 'sidebar-8' ); ?>
37c37
<   <?php if ( is_active_sidebar( 'sidebar-5' ) ) : ?>
---
>   <?php if ( is_active_sidebar( 'sidebar-9' ) ) : ?>
39c39
<       <?php dynamic_sidebar( 'sidebar-5' ); ?>
---
>       <?php dynamic_sidebar( 'sidebar-9' ); ?>

# vi sidebar-another-page.php
<?php get_footer('another'); ?>

なんか余分な設定入っているかもだけど、これで問題ないと思う。
「外観 > ウィジェット」でサイドバーが出ていて、
footer-another.php で指定したように新しいフッターが設定されているはず。