0

私が取り組んでいるプロジェクトのイベント管理プラグインを開発していますが、どこから始めればよいかわからない問題に遭遇しました!

基本的に、次のコードを使用して、イベントの 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、保存する前に正しい会場を入力するだけです.

これを解決する方法は?

4

1 に答える 1

1

これは連鎖選択と呼ばれ、機能させるには Ajax と jQuery が必要です。

jQuery を使用すると、Photo Event ドロップダウンの変更を「聞く」ことができます。各変更は、写真会場の PHP コマンドを実行する Ajax 呼び出しをディスパッチしget_categories、応答は、会場の新しいドロップダウンをレンダリングする jQuery によって処理されます。

この部分を機能させるためだけに新しいプラグインを作成し、問題がなければメインのプラグインとマージすることをお勧めします。この回答を出発点として使用してください。

WordPress Answers で、この検索クエリの他のリソースを見つけることができます。

于 2013-07-29T12:34:38.017 に答える