私が取り組んでいるプロジェクトのイベント管理プラグインを開発していますが、どこから始めればよいかわからない問題に遭遇しました!
基本的に、次のコードを使用して、イベントの CPT を検索し、そのタイプの投稿をリストに入力する2 つのオプション選択ドロップダウン メタフィールドがあります。
<select name="photo_event" id="photo_event"/>
<option value="none">--- Select Event ---</option>
<?php
global $post;
$args = array( 'post_type' => 'event' );
$posts = get_posts( $args );
foreach($posts as $post) : setup_postdata($post); ?>
<option value="<?php echo $post->ID; ?>"> <?php the_title(); ?> </option>
<?php endforeach; ?>
</select>
もう 1 つはVenuesカテゴリを検索し、以下を使用してリストにサブカテゴリ (実際の会場) を入力します。
<select name="photo_venue" id="photo_venue"/>
<option value="none">--- Select Venue ---</option>
<?php
$params = array(
'type' => 'post',
'child_of' => 3,
'hide_empty' => 0
);
$categories= get_categories($params);
foreach ($categories as $category) {
$option = '<option value="'.$category->category_nicename.'">';
$option .= $category->cat_name;
$option .= '</option>';
echo $option; }
?>
</select>
これらのメタフィールドが添付されている CPT は、event
または に関連するエンティティvenue
(写真、プロモーション素材、録音されたミックスなど) を投稿するためのものです。
さて、問題: ユーザーはエンティティを会場に添付したい場合があります。その場合、イベントを選択せず、値を返すデフォルトの " --- Select Event -- " のままにしておきます。のnone
フィールドでphoto_event
。これ、いいです。
ただし、各イベントは 1 つの会場でのみ開催されるため、ユーザーがイベント投稿のリストからイベントを選択すると、イベントが開催された会場がデフォルトで [会場オプション] 選択ボックスに表示されるようにしたいと思います (そのイベントの投稿情報をアップし、その特定の投稿に保持されている値から適切な会場を選択しますevent_venue
(メタフィールドevent_venue
も同じカテゴリとサブカテゴリを検索しphoto_venue
て、ボード全体で完全な連続性があるように [soそのフィルタリングvenue
はエラーをスローしません])、他のすべてのオプションを削除するか(そのため、ユーザーはイベントが開催された会場とは異なる会場を選択できません)、ボックスを完全に無効にしてphoto_venue
、保存する前に正しい会場を入力するだけです.
これを解決する方法は?