これを動作させる方法を試してみるために何時間も実験し、調査しましたが、私は運がまったくありません。一致するサブフィールド値を持つ特定のACFリピータ行を取得する方法
だから私はちょっと混同しなければならないいくつかのカスタムポストタイプがあります。できるだけ明確かつ経済的にそれを試してみましょう。
メッセージ&のカスタム投稿タイプが2つあります。 (これは大規模な複数の教会のウェブサイトです)。各メッセージ投稿は、(Taxonomyフィールドを介して)キャンパスに基づいていくつかのリピータ行を持ち、各Campus投稿は最新のMessage投稿を取得しようとし、特定の「キャンパス」リピータ行とその行から同じフィールド値を取得しようとします。
メッセージ単一のポストのためのACFの中継区間...、現時点ではそう
(私たちは、その後、手動でスピーカーの名前とメッセージのURLを入力する、キャンパス柱の一つ選択している)I "キャンパス"の単一の投稿の中で、最新のメッセージ投稿を検索して取得しようとしています。しかし、それから私は、メッセージ投稿の特定のリピーター行INSIDEの値をターゲットにして取り込みしようとしています。メッセージのリピータフィールドは、キャンパスセレクト(「キャンパス」ポストタイプの「投稿オブジェクト」フィールドと2つの異なるテキストフィールドに基づいて選択します)
メッセージの投稿には、次のリピーターデータ: リピーター行1:キャンパスセレクト - トロイ(ポスト)、メッセージスピーカー - Danny Cox、メッセージURL - (URL A) リピーター行2:キャンパスセレクト - バーミンガム(ポスト)、メッセージスピーカー - クリフジョンソン、メッセージURL - (URL B) ...複数のキャンパスにはリピータが動的に配置されます
私は次のようにしています。トロイ "の例 - 私は最新のメッセージポストをつかみ、繰り返しに行く「Campus Select」値を含む行を探します。私はメッセージスピーカー(Danny Cox)とメッセージURL(URL A)をその行から返信したいと思います。私は他の行から何も必要ありません。
私は私の現在の「最新のメッセージ」とここに私の現在のクエリの中2つのリピータの行があります。トラブルシューティングのために
<?php
$args = array(
'post_type' => 'messages',
'posts_per_page' => 1
);
$latestMessageQuery = new WP_Query($args);
if($latestMessageQuery->have_posts()) { ?>
<?php while ($latestMessageQuery->have_posts()) : $latestMessageQuery->the_post(); ?>
<?php if(have_rows('campus_message')): ?>
<?php while(have_rows('campus_message')): the_row(); ?>
<?php if(get_sub_field('campus_selector') == 'troy'): ?>
<?php the_sub_field('message_speaker'); ?>
<?php else: ?>
<?php the_sub_field('message_speaker'); ?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
<?php endwhile; ?>
<?php }
wp_reset_query();
?>
を、私は手動で「トロイ」の値をつかむしようとしている「キャンパスセレクタ」の代わりに、現在の「キャンパス」の場所に基づいてその値を動的に取得しています。
「Cliff Johnson Danny Cox」(2つのリピータ行があるため)
返信方法:「Troy、Danny Cox、url A」をクエリに使用しますか?
私が関係しているデータの関係から、セットアップに関する問題があります。この例では、このクエリを実行する前にキャンパスの投稿名を取得してから、 '。 。 。 == 'トロイ'とそのポスト名。最後に、同じ出力を生成する対応するelseを削除します。私はしかし、いくつかの選択肢を見てみましょう。 1)異なる構造を検討するか、2)カスタムDBクエリ(https://codex.wordpress.org/Class_Reference/wpdb)を使用する –
こんにちはNathan、応答ありがとう... 上記: "トラブルシューティングのために... "私は動的に投稿名を取得し、それを" ... == 'トロイ'のビットに引くことができます。私はその部分を解決することができます。 これは非常に大きなサイトであるため、構造を変更することはできないと思うし、それぞれのキャンパスごとにACFリピータを提供する単一の "メッセージ"ポストを持つことは、はるかに論理的な解決策のようだ。 ..各キャンパスに7つの異なる "メッセージ"ポストを持つよりもむしろ。 –
あなたの提案によれば、カスタムDBクエリは自分のスキルレベルでは非常に複雑です。私の状況でそれがどのように機能するかの例を教えてください。 –