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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1719閲覧

wordpressの関連記事取得の際にタクソノミーのターム名をリンク付で取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/08/03 23:56

解決させていことは、WordPressのプラグインCustom Post Types Relationships (CPTR)を使用しており、通常の投稿記事の詳細ページに、別のカスタム投稿の記事と関連付けた記事のタイトルを関連記事として取得表示をしているのですが、その取得したタイトルの属するタクソノミーのタームを(親子関係あり)も取得させたいです。
取得方法をご教授いただけますでしょうか。

<div class="related-word"> <div class="related-word-inner"> <div class="related-word-ttl">Relevant keyword<div class="ja">関連ワード</div></div> <?php $related_posts = get_post_meta( $post->ID, 'cptr_related', true ); if ( $related_posts ) : ?> <ul> <?php foreach ( $related_posts as $related_post ) : $post = get_post( $related_post ); if ( $post->post_status == 'publish' ) : setup_postdata( $post ); ?> <li class="col-1-3"> <h2 class="related-entry-title"> <a href="<?php the_permalink(); ?>"> <div class="en"><?php the_title(); ?></div> <div class="ja"><?php the_field('word-ja-title'); ?></div> </a> </h2> <!-- ここにターム名をリンク付で取得したいです --> </li> <?php endif; endforeach; wp_reset_postdata(); ?> </ul> <?php else: ?> <p>関連する記事はありません</p> <?php endif; ?> <a class="page_link-word" href="<?php echo esc_url( home_url( 'word' ) ); ?>" rel="word">wordpage</a> </div> </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

$related_post はPostIDが入っているのでしょうか。Postオブジェクトがそのまま入っている気がしますが、一度 var_dump( $related_post ); されてみてはいかがでしょうか。
また、PostIDが入っていたとして、$post はグローバル変数に使われている可能性があるので、別名にされたほうが良いかもしれません。

PHP

1foreach ( $related_posts as $related_post ) : 2 $my_post = ( !empty( $related_post->post_status ) ) ? $related_post : get_post( $related_post ); 3 if ( $my_post->post_status === 'publish' ) : 4 setup_postdata( $my_post );

タクソノミーはこうかな?

PHP

1if ( ( $related_terms = get_the_terms( $my_post->ID, 'タクソノミー名' ) ) && ( !is_wp_error( $related_terms ) ) ) { 2 echo '<ul>'; 3 foreach ( $related_terms as $related_term ) { 4 echo '<li><a href="'.get_term_link( $related_term->slug, 'タクソノミー名' ).'">'.esc_html( $related_term->name ).'</a></li>'; 5 } 6 echo '</ul>'; 7}

【wordpressで現在のページのターム情報を取得する方法まとめ】
http://designup.jp/wordpress-term-157/

【カスタム投稿のタームの出力いろいろ | ネットアンサー備忘録】
http://test55.sakura.ne.jp/tm/カスタム投稿のタームの出力いろいろ/

投稿2016/08/04 06:53

kei344

総合スコア69407

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

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

退会済みユーザー

退会済みユーザー

2016/08/09 09:05

タクソノミーのタームが無事、取得することが出来ました。 大変助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問