お知らせはありません。

【wordpress】カテゴリ別にサイドバーの表示内容を変更させる方法

まず初めにどういう事かといいますと

普通はどのページも同じサイドバーが表示されますよね?

それを、変更したいカテゴリのサイドバーだけ変更するという事です。

例えば、トップページは通常で表示、カテゴリAはサイドバーに何も表示しない!といった感じ。

今回はSTINGER5で行いました。

あくまでもSTINGER5での流れになるので注意してください。

テーマによって状況が変わるので、バックアップだけはとっておきましょう。

イメージ

少し難しいうえに、かなり簡単に説明しているので、パニックになるかもしれません。

イメージとしては

新しいサイドバーを追加する

 ↓

新しくウィジェットを追加

 ↓

そのウィジェットを新しく作ったサイドバーに表示させる

 ↓

single.phpで特定のカテゴリにだけ、新たに作ったサイドバーを表示させるためにコードを追加する

という感じです。

スラッグの確認

まずはじめにスラッグを確認しましょう。

スラッグとはカテゴリの略みたいなものです。

サイドメニュー>カテゴリで確認できます。(基本は英数字)

後に使います。

サイドバーを作る

FTPで新しくファイルをアップロードします。

私はFFFTPを使っています↓

[browser-shot url=”http://free-na-rancer.com/2014/05/18/post-142/” width=”150″]wpxサーバーにFFFTPを接続する設定方法 | Free!なランサー3

サイドバーを新たに作ります。

wp-content/themes/stinger5/にアップロードしてください。

フィル名:sidebar-スラッグ名.php

とりあえず空のファイルでOKです。後ほど書き込みます。

ウィジェットを追加する

functions.phpを開きます。

register_sidebars(1,
array(
'name'=>'名前',
'before_widget' => '<ul><li>',
'after_widget' => '</li></ul>',
'before_title' => '<h4 class="menu_underh2">',
'after_title' => '</h4>',
));

上記をウィジェット部分の一番下に追加します。

名前の部分は変えて結構です。

//ウイジェット追加
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(4) )

この部分の”4”という数字があります。(初期状態)

これは、ウィジェットの数です。

追加した分だけ足してください。

初期状態の4でウィジェットを1つ追加したいなら5でOK

出来たら、外観>ウィジェットで追加されているか確認しましょう。

わかりやすいように適当に使っていないウィジェットを追加しておいてください。

 sideber-***.phpに追加

新たに作ったサイドバーを開いて

デフォルトのsideber.phpをコピペしてください。

任意の場所に以下を追加します。

<div id="mybox">
<?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar(5) ) : else : //サイドウイジェット読み込み ?>
<?php endif; ?>
</div>

数字の部分はfunction.phpで何個目に追加したかです

もし初期状態の4で5番目に追加したなら5でOKです。

single.phpを編集する

single.php(単一記事の投稿)を編集します。

<?php get_sidebar(); ?>

↑というのが最後らへんにあるので下記に書き換えます。

<?php
if( in_category('スラッグ名') ) {get_sidebar('スラッグ名');}
else {
get_sidebar();
}
?>

スラッグ名の部分は書き換えてください。

これで完了です。確認してみてください。

最後に

簡単な説明、しかも画像もなくわかりづらかったと思います。

これで大丈夫なはずです。

私の場合途中でどうしてもできなくて、新たに作ったサイドバーをアップロードし直したら表示されました。

きっと何かが間違っていたのでしょう。

この記事がお役に立てたら幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です