質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

1230閲覧

Wordpressでカスタム投稿用にサイドバーを切り替えたいができない

_catbird284

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2021/10/11 08:06

カスタム投稿のページにサイドバーを切り替えたいができません。

2カラムのブログテンプレートを使用しています。
カスタム投稿「memorandum」を作成しました。
「memorandum」のページのサイドバーをデフォルト投稿ページのサイドバーではなく自作のサイドバー「memorandum-sidebar」にしたいですが出来ませんでした。
何が問題なのか教えていただけますでしょうか。

function.php:

PHP

1function my_theme_widgets_init() { 2 register_sidebar( array( 3 'name' => 'mamorandum-sidebar', 4 'id' => 'sidebar-2', 5 ) ); 6} 7add_action( 'widgets_init', 'my_theme_widgets_init' );

single-memorandum.php(single.phpからコピーペーストし、コメントアウトの行のみ変更):

PHP

1<?php 2/** 3 * The template for displaying all single posts. 4 * 5 * @package Nisarg 6 */ 7 8get_header(); ?> 9 10 <div class="container"> 11 <div class="row"> 12 <div id="primary" class="col-md-9 content-area"> 13 <main id="main" role="main"> 14 15 <?php while ( have_posts() ) : the_post(); ?> 16 <?php get_template_part( 'template-parts/content',get_post_format() ); ?> 17 </main><!-- #main --> 18 <div class="post-navigation"> 19 <?php nisarg_post_navigation(); ?> 20 </div> 21 <div class="post-comments"> 22 <?php 23 // If comments are open or we have at least one comment, load up the comment template. 24 if ( comments_open() || get_comments_number() ) : 25 comments_template(); 26 endif; 27 28 if ( ! comments_open() ) { 29 esc_html_e( 'Comments are closed.', 'nisarg' ); 30 } 31 ?> 32 </div> 33 <?php endwhile; // End of the loop. ?> 34 </div><!-- #primary --> 35 <?php get_sidebar( 'sidebar-2' ); ?> <!-- sidebar-1からsidebar-2に変更 --> 36 </div> <!--.row--> 37 </div><!--.container--> 38 <?php get_footer(); ?>

sidebar-memorandum.php(sidebar.phpからコピーペーストし、コメントアウトの行のみ変更):

PHP

1<?php 2/** 3 * The sidebar containing the main widget area. 4 * 5 * @package Nisarg 6 */ 7?> 8<div id="secondary" class="col-md-3 sidebar widget-area" role="complementary"> 9 <?php do_action( 'before_sidebar' ); ?> 10 <?php if ( ! dynamic_sidebar( 'sidebar-2' ) ) : ?> <!-- sidebar-1からsidebar-2に変更 --> 11 <aside id="search" class="widget widget_search"> 12 <?php get_search_form(); ?> 13 </aside> 14 <aside id="archives" class="widget"> 15 <h3 class="widget-title"><?php esc_html_e( 'Archives', 'nisarg' ); ?></h3> 16 <ul> 17 <?php wp_get_archives( array( 'type' => 'monthly' ) ); ?> 18 </ul> 19 </aside> 20 <aside id="meta" class="widget"> 21 <h3 class="widget-title"><?php esc_html_e( 'Meta', 'nisarg' ); ?></h3> 22 <ul> 23 <?php wp_register(); ?> 24 <li><?php wp_loginout(); ?></li> 25 <?php wp_meta(); ?> 26 </ul> 27 </aside> 28 <?php endif; // end sidebar widget area ?> 29</div><!-- #secondary .widget-area -->

なおsidebar.php内でdynamic_sidebar('sidebar-2')とすると「memorandum-sidebar」サイドバーを表示することができました。
何らかの理由でsidebar-memorandum.phpファイルが読み込まれていないと考えられます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2021/10/11 11:40

single-memorandum.php や archive-memorandum.php は、どのような内容になっているのでしょうか?
_catbird284

2021/10/12 12:29

single-memorandum.phpは上記の通りです。archive-memorandum.phpはまだ作成していません。
guest

回答1

0

ベストアンサー

たぶん、

<?php get_sidebar( 'sidebar-2' ); ?> <!-- sidebar-1からsidebar-2に変更 -->

が違っているのだと思います。

関数リファレンス/get sidebar
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_sidebar

名前 ($name) を指定すると、対応するサイドバー sidebar-{name}.php を読み込みます。sidebar-{name}.php が存在しない場合は、かわりに sidebar.php を読み込みます。

register_sidebar で設定した name や ID ではなく、ファイル名を指定する必要があるのだと思います。
ややこしいのは、
dynamic_sidebar では、設定した name や ID を指定することです。

参考まで。

投稿2021/10/11 11:21

8-0_nyan5

総合スコア2352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_catbird284

2021/10/12 12:42

get_sidebar()の仕様が理解できておりませんでした。ご指摘のように修正しましたら正しく表示されました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問