web-dev-qa-db-ja.com

メタデータを配列にプッシュする

検索結果にメタキーを適用する

私はワードプレスからJavaScriptで私のデータを取得するために別のアプローチをとる必要があるので、私は申し込みをしようとしています(今日の早めの投稿でフォローアップしてください( https://stackoverflow.com/)。それが正しい情報を吐き出すように私のクエリへの質問/ 34873986/javascript-for-custom-post-type-wordpress ))メタデータ。これは私が思っていたよりも実際には困難です。なぜなら私はそれを1回の問い合わせで欲しいからです。私は今かなり長い間グーグルをしていました、私がこの問題を抱えているのが私だけではないことを望んでいたので。私は自分の問題に対する適切な答えを見つけることができないようです

ケース

私はJavaScriptとphpがNiceをプレイしていないという事実を指摘されていたので、私は別の方法を模索し始めていました。 json_encodeを介してこれをjavascriptにプッシュする前に、結果を前もって入手する必要があります。これまでのところ、1つの小さなことを除けば、これは問題なく実行されています。 WP_queryで尋ねるとき、メタデータを取得することはできません。これは、私がGoogleマップのマップ情報を含んでいるため、本当に必要な部分です。それで、これをプッシュする前にそれを問い合わせることができる方法はありますか?

<?php
$args = array(
        'post_type' => 'hotels',
 );

$query = new WP_Query( $args );
echo '<pre>';
print_r($query->posts);
echo '</pre>'
?>

<script type="text/javascript">
var post_info = <?php echo json_encode($query->posts); ?>;
<script>

これまでのところ私は何が与えられたのかをチェックすることに成功した、しかし私はそれをwp_query経由で得ることができないと思う。必要なデータを実際に入手する方法は他にありますか?それとも、私はJavascriptでそれにアクセスすることができますので、私はそれぞれの単一の記事で配列のメタデータをプッシュすることができる方法はありますか?

1
Dorvalla

投稿をループして、各投稿のメタデータを取得する必要があります。それらを配列に追加し、それらをJSONにエンコードします。

$posts = $query->get_posts();
foreach( $posts as &$thispost ) { // reference the current item

    $thispost->meta = get_post_meta( $thispost->ID );

}

これでWP_Post- Objectが手に入りました。すべての投稿メタは$post->meta['meta_key'][0]にあります。メタキーに複数の値が保存されている場合は、['meta_key']-配列をループ処理できます。

1
fischi