サポート » プラグイン » ACFで別ページの要素が取得できない

  • 解決済 umioyo

    (@umioyo)


    Advanced Custom Fields(以下ACF)で、現在のページにページリンクのフォームを入れて、そのフォームでページが選ばれたときに選ばれたページの中の要素を取得したいと思っています。
    同様のコードをarchive.phpで実装しており、そちらでは問題なく取得できています。

    今回は、固定ページで同様の内容を実装したいのですが、ページIDが取得できたりできなかったり、取得できてもACFの内容が取得できない問題があります。

    以下のような構成です。
    【single-recipe.php】(カスタム投稿タイプ)
    recipestitle・・・テキスト、レシピのタイトル
    recipeimg・・・画像、レシピの画像

    【page-recipe.php】(固定ページ)
    ranking・・・繰り返し要素
     ranking_page・・・ページ

    【page-recipe.phpのコード(抜粋)】
    if( have_rows(‘ranking’) ){
    while ( have_rows(‘ranking’) ) { the_row();
    $ranking_page=get_sub_field(‘ranking_page’);
    $postid = url_to_postid( $ranking_page );
    $recipestitle=get_field(‘recipestitle’,$postid);
    $recipeimg=get_field(‘recipeimg’,$postid);
    〜それぞれ出力〜
    }}

    $ranking_pageにはURLが取得されています。(絶対)
    $postidは取得できたりできなかったりします。何番目に取得するかによっても結果が変わってくるので意味がわかりません。
    $postidが取得できていても、$recipestitle、$recipeimgは出力されません(絶対)

    懸念点としては、
    ・page-recipe.phpはカスタム投稿タイプである
    ・Custom Permalinksというプラグインを使用している
    (試しに停止してみましたが結果はかわりませんでした)
    ・url_to_postidで0が返ってきているということは、投稿記事として認識されていない!?

    泣きそうです。
    よろしくお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • 自己解決しました。
    結論としては、
    ・$postidが取得できない
    ・$recipestitle、$recipeimgが出力されない
    は別問題でして、
    ・$postidが取得できない
    は、single-recipe.phpのACFのデータ構造がグループの中にrecipestitle、recipeimgが設置されていたため、配列に格納されていました。
    ・$recipestitle、$recipeimgが出力されないのは、Custom Permalinksが問題でして、上記解消した上でプラグインを切ってみたら正常に表示されました。

    お騒がせいたしました。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「ACFで別ページの要素が取得できない」には新たに返信することはできません。