web-dev-qa-db-ja.com

別のメタボックスでのWPAlchemyメタボックス値の使用

私は非常に複雑なカスタム投稿タイプ構造を構築しています、そして私は私のメタボックスに関していくらかの助けを必要とするでしょう。

私がやりたいこと:

  1. have_fields_and_multi()関数に感謝します。ユーザーは単純なテキスト入力フィールドにデータを入力します(「新規追加」ボタンを使用)。
  2. 前のテキスト入力からの値は、別のメタボックスでselectドロップダウンを構築するために使用されるべきです。

それを簡単にするために、ここにモックアップがあります(これもこの記事に添付されています): http://idzr.org/0c95

最初の部分はうまくいきました、簡単です。しかし、2番目の部分を機能させる方法はわかりません。別のwhile($mb->have_fields_and_multi('aaa'))while($mb->have_fields_and_multi('bbb'))を使用した場合、ページは無限になります(ループは終了しません。foreachを使用した場合、他の問題が発生します。

私がこれを達成する方法についての考えがありますか?ありがとうございます。

2
Sinklar

さて、私はついに自分でそれを解決することができました。それはのおかげで可能です:

  1. 最初のフィールドを作成します。

    <?php
        while($mb->have_fields_and_multi('types')):
        $mb->the_group_open();
        $mb->the_field('type');
    ?>
    <input type="text" id="<?php $mb->the_name(); ?>" name="<?php $mb->the_name(); ?>" value="<?php $mb->the_value(); ?>" />
    <a href="#" class="dodelete button">Remove</a>
    <?php
        $mb->the_group_close();
        endwhile;
    ?>
    <a href="#" class="docopy-types button" style="float: left">Add new</a>
    <a href="#" class="dodelete-types button" style="float: right">Delete all</a>
    
  2. foreachを使用して最初のフィールドからデータを取得し、それをselectに入れる間に、2番目のフィールドのバッチを作成します。

    <?php
        while($mb->have_fields_and_multi('details')):
        $mb->the_group_open();
        $mb->the_field('detail_select');
    ?>
    <select name="<?php $mb->the_name(); ?>">
        <option value="">Choose...</option>
        <?php foreach ($meta['types'] as $types) { ?>
        <option value="<?php echo $types['type']; ?>"<?php $mb->the_select_state($types['type']); ?>><?php echo $types['type']; ?></option>
        <?php } ?>
    </select>
    <?php $mb->the_field('detail_title'); ?>
    <label>Description</label>
    <input type="text" id="<?php $mb->the_name(); ?>" name="<?php $mb->the_name(); ?>" value="<?php $mb->the_value(); ?>" /><br />
    <a href="#" class="dodelete button">Remove</a>
    <?php
        $mb->the_group_close();
        endwhile;
    ?>
    <a href="#" class="docopy-estate_details button">Add new</a>
    <a href="#" class="dodelete-estate_details button">Delete all</a>
    
2
Sinklar