1

複数の入力を含むカスタム メタ フィールドを投稿に保存することができました。入力は次のようになります。

<input type="text" name="menuitem[1][title]" />
<input type="text" name="menuitem[1][section]" />
<input type="text" name="menuitem[1][price]" />

<input type="text" name="menuitem[2][title]" />
<input type="text" name="menuitem[2][section]" />
<input type="text" name="menuitem[2][price]" />      etc.

また、データはシリアル化された配列に格納されます。

このようにする理由は、相互に関連するこのフィールドの値を照会したいからです。(たとえば、menuitem[title] の menuitem[price] でソートされた投稿をクエリする場合)。

問題は、WP-query が 1 つのキー値しか読み取ることができず、シリアル化されたデータを読み取ることができないことです。

相互に関連付けられるようにメタ キーを保存するより良い方法はありますか?

どんな提案も感謝します。ありがとうございました

4

1 に答える 1

0

foreachを使用する必要があります

例:

<?php
$entries = get_post_meta($post->ID, '_your_metabox_group_id', true );

    foreach ( (array) $entries as $key => $entry ) {

    $title = $section = $price = '';

    if ( isset( $entry['_your_title_meta_id'] ) )
    $title = get_post_meta($post->ID, '_your_title_meta_id', true);

    if ( isset( $entry['_your_section_meta_id'] ) )
    $section = get_post_meta($post->ID, '_your_section_meta_id', true);

    if ( isset( $entry['_your_price_meta_id'] ) )
    $price = get_post_meta($post->ID, '_your_price_meta_id', true);

    // your output e.g
    // echo '<span class="some-class">'.$title.'</span>';

}
?>
于 2014-08-14T20:41:43.163 に答える