こんにちは
sidebar-タクソノミー名.php
タクソノミー名というわけではありません。get_sidebar 関数の引数で指定する任意の名前となります。
get_sidebar() の場合は sidebar.php、get_sidebar( ‘foobar’ ) の場合は sidebar-foobar.php テンプレートが読み込まれます。
https://wpdocs.osdn.jp/関数リファレンス/get_sidebar
例)
single-{カスタム投稿名}.php
<?php get_sidebar( 'foobar' ); ?>
sidebar-foobar.php
<aside id="secondary" class="widget-area" role="complementary">
<section id="sidebar-foobar-1" class="widget sidebar-foobar">
<h2 class="widget-title">foobar ターム名表示</h2>
<?php
if ( $terms = get_the_terms( $post->ID, 'foobar' ) ) {
echo '<ul>';
foreach ( $terms as $term ) {
echo '<li>' . esc_html( $term->name ) . '</li>';
}
echo '</ul>' . "\n";
}
?>
</section>
<?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside>
ishitakaさま
コメントありがとうございます。
書き方が誤っておりました。
sidebar-タクソノミー名.phpではなく、single-カスタム投稿名.phpにsidebar-カスタム投稿名.phpをget_sidebarで指定読み込ませています。
sidebar-カスタム投稿名.phpとしたのは、単にget_sidebarで指定する際に分かりやすいようにとの理由です。
なので、やり方は間違ってないと思うのですが、なぜが表示されません。
提示したサンプル コードを下記環境で検証してみました。
・WordPress 4.8.1
・Twenty Seventeen テーマ
・WP Multibyte Patch プラグインのみ
結果、ターム名は表示されました。
特に、気を付ける点もなさそうなのですが・・・?
PHP エラーが発生していたりしませんかね。
下記ページを参考にエラーメッセージを確認してみるといいかなと思います。
https://wpdocs.osdn.jp/WordPressでのデバッグ
ishitakaさま
ありがとうございます。
私も他のプロジェクトでは問題なく表示されていたので、
このようなエラーは初めてです。
デバッグを有効にして確認してみたところ
Notice: Trying to get property of non-object
というエラーが発生しておりました。
該当箇所は
echo '<li>' . esc_html( $term->name ) . '</li>';
の部分です。
get_the_terms 関数がエラー(WP_Error オブジェクト)を返しているようです。無効なタクソノミーを指定していませんか?
var_dump 等で戻り値を確認してみてはどうでしょうか。
if ( $terms = get_the_terms( $post->ID, 'ターム名' ) ) {
var_dump( $terms );
ishitakaさま
ありがとうございます。
戻り値を確認しましたが、問題なくターム名が表示されました。
また、以下のコードを記載したら、表示されました。
<?php
if ($terms = get_the_terms($post->ID, 'ターム名')) {
foreach ( $terms as $term ) {
echo ('<h3>') ;
echo esc_html($term->name) ;
echo ('</h3>') ;
}
}
?>
色々とありがとうございました!
$term->name と記述は同じなんですけどね・・・なんでだろう?
ちょっとだけ気になりますが、とりあえず解決したようなので結果オーライです。
「解決済み」にしてくださいね。
ishitakaさま
そうなんですよね。
僕も良く分かりませんが、とりあえず、解決出来て良かったです(*^^*)。
この度は色々とありがとうございました!