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

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

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

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

PHP

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

Q&A

解決済

2回答

1374閲覧

WordPressのカスタム投稿について

atsupoooon

総合スコア47

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/11/11 21:40

ワードプレスの複数のカスタム投稿のループ内から、
指定のpost_typeのものだけ、表示方法を変更したいと思っております。

関連記事の表示になります。
表示させたい場所は、カスタム投稿のsingleページになります。
※任意で設定したカスタムフィールドの値も表示させたい。

アドバンスカスタムフィールドの設定で、該当のカスタム投稿に関連記事のフィールドを作成しております。
下記が設定情報になります。
Return Format:Post IDs にチェック
投稿タイプ:取得したいカスタム投稿を複数選択しております。
タクソノミーでフィルタする:何も設定なし
フィルター:検索 にチェック
Elements:3つともチェック
最大投稿数:設定なし

参考URL:https://naifix.com/acf-related-article/

下記がsingleのコードになります。

single.php

1<ul> 2 <?php 3 $related_posts = get_field('favorite'); //カスタムフィールド値 4 $args = array( 5 'post_type' => array('coustom1','coustom1','coustom1'), //カスタム投稿 6 'posts_per_page' => 6, //件数指定 7 'post__in' => $related_posts, //queryに含む投稿IDを指定 8 'orderby' => 'post__in' //表示順(配列に入っている順)<br /> 9 ); 10 ?> 11 <?php $query = new WP_Query( $args ); ?> 12 <?php if($query -> have_posts()): ?> 13 14 <?php while($query -> have_posts()): $query->the_post();?></p> 15 <li> 16 <p>coustom1 の表示</p> 17 <p class="sekou_dtl"><a href="<?php the_permalink(); ?>">詳しくはこちら</a></p> 18 </li> 19 20                  <li> 21 <p>coustom2 の表示</p> 22 <p class="sekou_dtl"><a href="<?php the_permalink(); ?>">詳しくはこちら</a></p> 23 </li> 24 25                 <li> 26 <p>coustom3 の表示</p> 27 <p class="sekou_dtl"><a href="<?php the_permalink(); ?>">詳しくはこちら</a></p> 28 </li> 29 </ul> 30 <?php endif; ?> 31 32 33 <?php endwhile; ?> 34 <?php endif; ?> 35 <?php wp_reset_postdata(); ?> 36

以上になります。

<li>タグのところでif文で条件分岐させるしか方法がないと思っておりますが、 各カスタム投稿のpost_type ??の値をこのループ内で取得する方法がわかりません。

わかるから教えてもらえますでしょうか。
また、その他良い書き方があれば教えてください。

宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1$this_post_type = get_post_type(); 2```か、 3```PHP 4$this_post = get_post(); 5$this_post_type = $this_post->post_type;

【get_post:WordPress私的マニュアル】
https://elearn.jp/wpman/function/get_post.html

【get_post_type:WordPress私的マニュアル】
https://elearn.jp/wpman/function/get_post_type.html

【Advanced Custom Fieldsの使い方】
http://kotori-blog.com/wordpress/advanced-custom-fields/

【Advanced Custom Fieldsの出力】
http://kotori-blog.com/wordpress/acf_output/

投稿2017/11/12 01:18

kei344

総合スコア69398

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

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

atsupoooon

2017/11/12 11:32

回答ありがとうございます。 早速試してみます。 参考URLまでありがとうございます。
atsupoooon

2017/11/12 14:49

実装できました! ありがとうございました。
guest

0

WordPressのget_post_type関数を使用してください。
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_post_type

PHP

1// ループ内で 2echo '投稿タイプは:' . get_post_type( get_the_ID() );

投稿2017/11/12 01:15

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

atsupoooon

2017/11/12 11:33

回答ありがとうございます。 基本的な関数を忘れておりました。 実装してみます。 ありがとうございます。
atsupoooon

2017/11/12 14:49

実装できました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問