データの移行に伴い、phpコードの文字化けが発生している箇所があります。
&lti や > のような文字化けが出ているコードはコピーしないでください。
現在、手直し中です。すみません。
sidebar.php サイドバーの「ウィジェット」「マニュアル編集」について
サイドバー(sidebar.php)のカスタマイズには、「ウィジェット」と「マニュアル(手書き編集)」の二通りあります。
マニュアルは、テーマ・テンプレートのPHPコードを手書きで編集しますが、ウィジェットは、カテゴリー、新着記事、タグクラウドといった構成部品を、次のようなパネル操作でカスタマイズします。
ウィジェットは、管理画面メニューの『外観』→『ウィジェット』から操作することができます。

各メニューはドラッグ&ドロップで移動し、編集画面を開いてカスタマイズします。

実際の画面。

§ ウィジェットの自動切り替えとカスタマイズ
ウィジェットの不便な点は、一度設定してしまうと、すべてのサイドバーに内容が反映されることです。
たとえば、sidebar-●●.php というファイルを作成し、手動でカテゴリーリストなどのテンプレート・タグを書き込んでも、( !function_exists(‘dynamic_sidebar’) が存在し、ウィジェットが一つでも設定されていれば、マニュアル編集した分は反映されなくなります。
ウィジェットの内容を反映させたくない場合、function_exists と末尾のendifを削除します。
次のコードはSidebar_1というIDのウィジェットを利用しているケース。
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Sidebar_1') ) : ?>
☆ウィジェットが設定されている場合、この区間のテンプレート・タグは無視され、ウィジェットの内容が優先されます☆
<?php endif; ?>
逆に、独自のウィジェットを反映したい場合、function.phpを使ってウィジェットを増設すると便利です。
「フォトギャラリー」という名前のウィジェットを id=gallery で登録する場合。お使いのテーマ・ファイルのfunction.phpに次のように記述します。divや見出しタグの内容はご自由に。
<?php
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'フォトギャラリー',
'id' => 'gallery',
'before_widget' => '<div class="●●">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>'
));
}
?>
次に任意のsidebar.phpにと書き込めばOK。
テーマ・テンプレートによって、コードの書き方が異なるので、最初は分かりにくいかもしれませんが、基本は dynamic_sidebar(”)にウィジェットのIDを記述します。ヘッダーやフッターに設置するウィジェットも同じ要領です。
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('gallery') ) : ?>
<?php endif; ?>
一例として、Love、Kosodateといったカスタムポスト・タイプに応じてサイドバーを使い分け、それぞれのコンテンツに応じた記事リストや広告バナーが表示されるよう自動で切り替えています。
上記で紹介したようにfunction.phpでウィジェットを登録し、カスタムポストに応じたsidebar-●●.phpを読み込み、そこに指定したウィジェットを表示させる方法です。
Ads
Leave a Reply


