※アクセスログの検索キーワードを参考に記事
WordPressサイトで、特定の記事ごとorカテゴリごとに違うサイドバーを読込む。
例)
会社概要のページ…記事IDが「1」とする
製品案内のページ…記事IDが「2」とする
→ sidebar-page.php
スタッフブログ(カテゴリ)…カテゴリIDが「3」とする
→ sidebar-blog.php
その他
→ sidebar.php
以上のように記事やカテゴリ毎に別のサイドバーを表示させるには?
※あらかじめ上記ファイル名でそれぞれのサイドバーを作っておく。
■対象テンプレート:
index.php
single.php
page.php
他
■方法:
デフォルトテーマのテンプレートの場合、最後のほうにある
<?php get_sidebar(); ?>
を下記のように修正
<?php
if($post->ID == ‘1′ || $post->ID == ‘2′) {
include(’sidebar-page.php’);
} elseif($cat == ‘3′) {
include(’sidebar-blog.php’);
} else {
get_sidebar(); ※sidebar.phpが読込まれます
}
?>
if($post->ID == ‘1′ || $post->ID == ‘2′) {
include(’sidebar-page.php’);
} elseif($cat == ‘3′) {
include(’sidebar-blog.php’);
} else {
get_sidebar(); ※sidebar.phpが読込まれます
}
?>
わかりやすくするために単純に書きましたが、is_single()やis_page()などコンディショナルタグも併用しないと思わぬ結果になることがあると思います。工夫してみてください。
■補足:
sidebar-page.phpの中でさらに「会社概要」と「製品案内」でサイドバーの内容を変えるには、コンディショナルを使って同様に分岐処理。
<?php
if($post->ID == ‘1′) {?>
---HTMLやPHP---
<?php } elseif($post->ID == ‘2′) {?>
---HTMLやPHP---
<?php } else {?>
---空欄など---
<?php }
?>
if($post->ID == ‘1′) {?>
---HTMLやPHP---
<?php } elseif($post->ID == ‘2′) {?>
---HTMLやPHP---
<?php } else {?>
---空欄など---
<?php }
?>
また記事IDの代わりに記事スラッグを使って判断させても良いと思います。
<?php
if($post->post_name == ‘profile’) {?>
(以下同様)
if($post->post_name == ‘profile’) {?>
(以下同様)
以上
コメント/質問お待ちしています