久しぶりに、wordPressのカスタマイズ記事をお届けします。
wordPressユーザーになる事約1月、ある程度の仕組みが分かって来ましたので、
今回、サイドバーのカスタマイズに挑戦します。しかも話題の無料テーマ、stingerでおこなってみたいと思います。

 

サイドバーとは、通常記事の右横に表示されている”NEW ENTRY”などが表示されている、stingerでは、お馴染みのレイアウト画面です。今回、固定ページを作成した場合に、いつもと違うレイアウトにする為の仕掛けを用意します。

 

固定ページについて、良くわからない方は、以前の記事、”wordPress 投稿ページと固定ページの違い”をご参照ください。

 

wordPress stingerでサイドバーを変更する為に必要なファイル

 

変更するファイルは、
functions.php

新規作成するファイルは、
page-new.php
sidebar-new.php
footer-new.php

 

また、今まで説明してしてきた通り、子テーマの変更で対応します。
子テーマの変更であれば、万一ソースコードを間違えて記述してしまっても、wordPressのデータを壊す心配もありませんし、wordPressの親テーマのバージョンアップの際も、カスタマイズした内容を簡単に引き継げますから、お勧めです。

 

さて、まずは、functions.phpに管理画面のウィジェットで、サイドバーの表示が出来るように、変更を加えます。

 

以前、footerをカスタマイズする方法で、functions.phpを変更した場合は、
以下のソースコードになっていますので、

[php]
//ウイジェット追加
if ( !function_exists(‘dynamic_sidebar’) ||
!dynamic_sidebar(7) )

register_sidebars(1,
    array(
    ‘name’=>’サイドバー1’,
   
‘before_widget’ => ‘<ul><li>’,
    ‘after_widget’ =>
‘</li></ul>’,
    ‘before_title’ => ‘<h4
class="menu_underh2">’,
    ‘after_title’ => ‘</h4>’,
   
));


省略


register_sidebars(1,
    array(

    ‘name’=>’フッター右’,
    ‘before_widget’ => ”,
   
‘after_widget’ => ”,
    ‘before_title’ => ‘<h5>’,
   
‘after_title’ => ‘</h5>’,
    ));
[/php]

 

最初の2行目の数値を7→8に変更し、最後の行に、追加するサイドバー用の
コードを付け加え、以下のような記述になれば完成です。

[php]
//ウイジェット追加
if ( !function_exists(‘dynamic_sidebar’) ||
!dynamic_sidebar(8) )

register_sidebars(1,
    array(
    ‘name’=>’サイドバー1’,
   
‘before_widget’ => ‘<ul><li>’,
    ‘after_widget’ =>
‘</li></ul>’,
    ‘before_title’ => ‘<h4
class="menu_underh2">’,
    ‘after_title’ => ‘</h4>’,
   
));


省略


register_sidebars(1,
    array(

    ‘name’=>’フッター右’,
    ‘before_widget’ => ”,
   
‘after_widget’ => ”,
    ‘before_title’ => ‘<h5>’,
   
‘after_title’ => ‘</h5>’,
    ));
register_sidebars(1,
   
array(
    ‘name’=>’サイドバー固定’,
    ‘before_widget’ =>
‘<ul><li>’,
    ‘after_widget’ => ‘</li></ul>’,

    ‘before_title’ => ‘<h4 class="menu_underh2">’,
   
‘after_title’ => ‘</h4>’,
    ));
[/php]

 

次に、子テーマの中にある、footet.phpと親テーマの中にあるpage.phpとsidebar.phpをそれぞれコピーして、
名前を違うファイルを新規に子テーマの中に用意します。

 

page.php → page-new.php
footer.php → footer-new.php
sidebar.php → sidebar-new.php

 

では、順番にみていきましょう。
page-new.phpは、管理画面の固定ページを作成する時に選択するテンプレートになります。通常wordPressのテーマファイルであれば、この中に、サイドバーに関する記述が入っているのですが、stingerには、入っていませんでした。しかし、よーく調べてみると、なんと、footer.phpの中にsidebarを呼び出す記述が載っているではありませんか。

 

[php]
<?php get_sidebar(); ?>
[/php]

よって、仕組みは次の通りです。page.phpが固定ページの記事本文になり、この中で、footer.phpを読みこんでいます。読み込まれたfooter.phpがサイドバー情報を含んでいるsidebar.phpを呼び出しているのです。
そこで、今回、新しいサイドバーのレイアウト画面を用意する為、3つのphpファイルを複製して名前を変える必要があったのです。

あとは、新規に作成しした複製ファイルにおいても、phpの呼び出しが続くようにソースコードを変更してあげればイイだけです。

 

wordPress stinger サイドバー変更記述

page-new.php

 

[php]
46      <?php get_footer(); ?>
[/php]

[php]
2    /*
3    Template Name:PAGE new
4    */
52      <?php get_footer(new); ?>
[/php]

固定ページの管理画面で選択できるようにテンプレート名を記述し、
footer-new.phpを呼び込めるように変更します。

 

footer-new.php

[php]
3 <?php get_sidebar(); ?>
[/php]

[php]
3 <?php get_sidebar(new); ?>
[/php]

 

sidebara-new.php

 

[php]
61     <?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(7) ) : else : ?>
[/php]

[php]
61     <?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(8) ) : else : ?>
[/php]

これで、wordPressの管理画面より、固定ページを新規作成してみてください。
テンプレートの中に PAGE NEWの表示が入っていたら成功です。