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

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

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

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

PHP

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

Q&A

解決済

2回答

554閲覧

WordPressで関連記事を表示させたいのですがうまくいきません・・

totiki

総合スコア5

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/06/16 09:05

編集2020/06/16 15:50

実現したいこと

WordPressで関連記事を表示させたい。

前提

・プラグインは利用しない
・カスタム投稿で作成したsingle.phpを編集しての実装
・カテゴリではなくタグで表示させたい

発生している問題・エラーメッセージ

下記の記事を参考にソースコード入れてみたのですが、何も表示されない状態です。
何が原因で出力できないかを教えていただきたいです。

参考にした記事
https://www.radia.jp/archives/1205

該当のソースコード

<?php //記事の投稿タグを取得する $tags = wp_get_post_tags($post->ID); if($tags): //$tagIDに現在のIDを代入 $tagID = array(); foreach($tags as $tag){ array_push($tagID, $tag -> term_id); } $args = array( 'tag__in' => $tagID, 'post__not_in' => array($post->ID), 'posts_per_page' => 6, 'ignore_sticky_posts'=>1, 'orderby'=>'rand', ); $my_query = new WP_Query($args); if($my_query-> have_posts()): ?> <div class="related-tags"> <?php while($my_query->have_posts()): $my_query->the_post(); ?> <div class="cell"> <a href="<?php the_permalink(); ?>"> <?php if(has_post_thumbnail()): the_post_thumbnail('thumbnail'); else: ?> <img src="<?php echo get_template_directory_uri(); ?>/assets/images/noimg-125.png" alt="<?php the_title(); ?>"> <?php endif; ?> </a> <div class="post-title"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </div> </a> </div> <?php endwhile; ?> </div> <?php endif;?> <?php endif; wp_reset_postdata(); ?>

試したこと

WordPressやPHPの知識・スキルが乏しいため、コピペのみで実装した次第です。
HTML、CSSの理解はあります。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

kei344

2020/06/16 14:24

(質問文は編集できます)質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答2

0

ベストアンサー

カスタム投稿を使用しているようですが、それに使用しているタグはWordpress初期設定のタグ(post_tag)なのでしょうか?
カスタム分類でタグを作成されているのならwp_get_post_tagsではなくget_the_termsでカスタム分類を取得してみてください。その場合tag__inではなくtax_queryで指定してみてください。

【追記】

php

1$tags = get_the_terms($post->ID,'カスタム分類'); 2foreach($tags as $tag){ 3 echo $tag->term_id; 4 array_push($tagID, $tag->term_id); 5} 6$args = array( 7 'post__not_in' => array($post->ID), 8 'posts_per_page' => 6, 9 'ignore_sticky_posts'=>1, 10 'orderby'=>'rand', 11 'post_type' => 'カスタム投稿', 12 'tax_query' => array( 13 array( 14 'taxonomy'=>'カスタム分類', 15 'field'=>'term_id', 16 'terms'=>$tagID, 17 'operator'=>'IN' 18 ) 19 ) 20);

先頭部分をこのように変更してみてください。

投稿2020/06/17 07:44

編集2020/06/18 04:28
gogoweb_ikeda

総合スコア1426

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

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

totiki

2020/06/18 02:51 編集

カスタム分類でタグを作成しているようです。 ファイル構成は以下となります。 ・single-colums.php ・taxonomy-column_category.php ・taxonomy-column_tag.php 教えてくださったとおり、get_the_termsを指定したところ、出力はできたのですが Hello World!が表示されてしまいました。 tax_queryの指定方法をよくわかっておらず恐縮なのですが、どのような指定をすればよいのかを教えていただけないでしょうか。
totiki

2020/06/18 06:44

gogoweb_ikedaさま 教えていただいた内容を追記したところ表示されるようになりました! ご丁寧にいろいろ教えてくださり、本当にありがとうございました。
guest

0

投稿2020/06/16 15:40

yuki84web

総合スコア1857

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

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

totiki

2020/06/17 00:52

ソースコードを確認してみたのですがマークダウンの記述はありませんでした。 そのほかに考えられる要因は何かありますでしょうか。
yuki84web

2020/06/17 01:04

マークダウンの件失礼しました。'post_type'パラメータを設定してみてください。
totiki

2020/06/17 01:52

post_typeパラメータについて、下記ソース部分に追加してみたのですが、これであってますでしょうか。間違ってましたら具体的な記述を教えていただけると大変助かります。 $args = array( 'tag__in' => $tagID, 'post__not_in' => array($post->ID), 'posts_per_page' => 6, 'ignore_sticky_posts'=>1, 'orderby'=>'rand',   'post_type'=>'custom-post-type', ← 追加 );
yuki84web

2020/06/17 02:02 編集

post_type'は通常の"投稿"であれば'post'で、カスタム投稿であるなら、自分で定期したカスタム投稿タイプ名です
totiki

2020/06/17 06:05

カスタム投稿タイプで作っているので下記の記述を追加した次第です。 記述が間違っていたようなので、再度アップしてみたもののやはり何も表示されませんでした。 修正前 'post_type'=>'custom-post-type', 修正後 'post_type'=>arry('custom-post-type')
yuki84web

2020/06/17 06:34

そもそも元の投稿のIDが取得出来ているか、WP_queryのパラメータを最低限に減らして取得出来る状態にしてから増やしていく、など段階的に検証していったほうがよさそうです。
totiki

2020/06/17 07:25

ご相談に乗って下さりありがとうございます。サクッとコードを貼って済むような感じではなさそうですね。 それにサイト自体がいろんな人の手によってカスタマイズされていて、どのような構造になっているのかを紐解いていく必要がありそうなので、もう少し調査してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問