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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

PHP

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

Q&A

解決済

1回答

483閲覧

ワードプレスプラグインAdvanced Custom Fieldsの関連機能を固定ページで表示したい

UKYO9311

総合スコア31

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/08/16 03:24

編集2019/08/16 04:14

前提・実現したいこと

固定ページ(アーカイブページ)で、管理者が自分で選択できるおすすめ記事を作りたいです。

・ カスタム投稿で構築しています。
・ Advanced Custom Fieldsを使っています。
・ Advanced Custom Fieldsの「関連」機能を使って表示したいです。

↓Advanced Custom Fields管理画面
イメージ説明

↓固定ページ、社長ブログ編集ページ
右側に表示されてる記事だけ表示させたいです。
イメージ説明

↓現在固定ページに表示されている内容
全て表示されてしまっています。
イメージ説明

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

エラーは現状出ていません。

該当のソースコード

php

1 2//function.php 3 4add_action( 'init', 'create_post_type_ceo' ); 5function create_post_type_ceo() { 6register_post_type( 'ceo', //カスタム投稿タイプ名 7array( 8'labels' => array( 9'name' => __( '社長のブログ' ), 10'all_items' => __( '社長のブログ一覧' ), 11 12), 13'public' => true, 14'has_archive' => true, //アーカイブページを持つ 15'menu_position' =>5, //管理画面のメニュー順位 16'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ), 17) 18); 19/* カテゴリーの設定 */ 20register_taxonomy( 21'ceo_category', //カテゴリーの名前 22'ceo', //使うカスタム投稿タイプ名 23array( 24'hierarchical' => true, //trueで親子関係使用 25'update_count_callback' => '_update_post_term_count', 26'label' => 'カテゴリー', 27'singular_label' => 'カテゴリー', 28'public' => true, 29'show_ui' => true 30) 31); 32/* タグを設定 */ 33register_taxonomy( 34'ceo_tag', //タグの名前 35'ceo', //使うカスタム投稿タイプ名 36array( 37'hierarchical' => false, 38'update_count_callback' => '_update_post_term_count', 39'label' => 'タグ', 40'singular_label' => 'タグ', 41'public' => true, 42'show_ui' => true 43) 44); 45} 46

php

1 2<?php 3 $related_posts = get_field( 'test' ); // 関連記事IDの取得 4 $args = array( 5 'post_type' => 'ceo', 6 'posts_per_page' => -1, 7 'post__in' => $related_posts, //queryに含む投稿IDを指定 8 'orderby' => 'post__in' //表示順(配列に入っている順) 9 ); 10 ?> 11 <?php $query = new WP_Query( $args ); ?> 12 <?php if($query -> have_posts()): ?></p> 13 <h2>関連記事の出力(オプションページ)</h2> 14 <ul> 15 <?php while($query -> have_posts()): $query->the_post();?></p> 16 <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 17 <p> <?php endwhile; ?> 18 </ul> 19 <p><?php endif; ?><br /> 20 <?php wp_reset_postdata(); ?> 21

試したこと

php

1<?php 2 $page_id = get_page_by_path('ceo'); 3 $page_id = $page_id->ID; 4 echo get_post_meta($page_id, 'test', true); 5?>

どうしても表示されず、プラグインの問題かなと思いましたが、このコードでテキストを試しに表示してみたところ、固定ページで正常に表示されました。

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1$related_posts = get_field( 'test' ); // 関連記事IDの取得
  • 返り値のフォーマットが「投稿オブジェクト」になっているため、上記の式では投稿 ID の配列は返ってきません。返り値のフォーマットを「投稿 ID」に変更してください。

投稿2019/08/16 03:46

YukiYamashina

総合スコア1011

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

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

UKYO9311

2019/08/16 04:16

Yuki Yamashina様 いつもご回答ありがとうございます。( ; ; ) 投稿オブジェクトを投稿IDに変更して、$related_posts = get_field( 'test' );にしたのですが、表示は変化なしでした。。。
YukiYamashina

2019/08/16 04:30

$related_posts を var_dump すると NULL になっていませんでしょうか?また、「位置」の「ルール」で「ページテンプレート」が ceo に等しいように設定されていますが、これは「投稿タイプ」ではなく「ページテンプレート」で間違いないでしょうか? https://wpdocs.osdn.jp/ページテンプレート
UKYO9311

2019/08/16 04:46

今、var_dump($related_posts);と入力したらNULLと表示されました。 はい。今回はarchive-ceo.phpというファイルに <?php /** * Template Name: ceo */ ?> で固定ページと紐付けしてその固定ページから編集できるようにしているので、投稿ページではなくアーカイブページ(固定ページ)です。
YukiYamashina

2019/08/16 05:04

該当の固定ページの編集画面から更新しても変わりないでしょうか?
UKYO9311

2019/08/16 05:51

更新したのですが、変わりなしでした( ; ; )
YukiYamashina

2019/08/16 11:25

試したことに記載されてるコードを使って $page_id = get_page_by_path('ceo'); $page_id = $page_id->ID; $related_posts = get_field( 'test', $page_id ); とするとうまくいくということでしょうか?
UKYO9311

2019/08/16 13:48

できました!!!!!( ; ; ) その通りでした。。。長い間ありがとうございました(>_<)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問