2016-04-13 18 views
0

私はカスタムの投稿タイプ '注文'を持っていますが、この投稿タイプにはカスタムフィールドがいくつか添付されています。WordPressカスタムの投稿タイプのカスタムフィールドのクエリ

私はそうのようにすべての注文を照会:

$orders = new WP_Query(array('post_type' => 'orders'));

私は私が取得したいすべてのデータを得ることはありません。

リピーターを含むタブカスタムフィールドがあります。リピータからのデータが必要なのです。誰も私が$ordersのダンプでこのデータを取得しない理由を知っていますか?

私のクエリは、このデータをすべて取得するために何か他のものにする必要がありますか?このコードでは

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [attractie] => WP_Post Object 
         (
          [ID] => 41 
          [post_author] => 1 
          [post_date] => 2016-02-29 14:30:33 
          [post_date_gmt] => 2016-02-29 14:30:33 
          [post_content] => <h2>Title!</h2> 
          Content. 
          [post_title] => Post Title 
          [post_excerpt] => 
          [post_status] => publish 
          [comment_status] => closed 
          [ping_status] => closed 
          [post_password] => 
          [post_name] => post-name 
          [to_ping] => 
          [pinged] => 
          [post_modified] => 2016-04-07 14:39:41 
          [post_modified_gmt] => 2016-04-07 14:39:41 
          [post_content_filtered] => 
          [post_parent] => 0 
          [guid] => url 
          [menu_order] => 0 
          [post_type] => attracties 
          [post_mime_type] => 
          [comment_count] => 0 
          [filter] => raw 
         ) 

        [start] => 0930 
        [end] => 1200 
       ) 

      [1] => Array 
       (
        [attractie] => 
        [start] => 0930 
        [end] => 1200 
       ) 

     ) 

::私は基本的に今必要なもの

$orders = new WP_Query(array('post_type' => 'orders')); 

foreach ($orders->posts as $all) { 
    $fields[] = get_field('planning', $all->ID); 
} 

はattractie WP_Postオブジェクトからpost_title値である私は、この配列を照会するために管理してきました

EDIT

startendの値です。

+0

なぜ高度なカスタムフィールドにタグを付けましたか?いくつかのフィールドをCPTに添付するためにプラグインを使用していますか? –

+0

はい私はカスタムフィールドを作成するためにACFプラグインを使用しています。 –

+0

答えを確認してください。 WPとAFCとCPTのUIプラグインにはAPIがあります。 –

答えて

0

は、ACFのフィールドが

get_post_custom($ post_idのを)カスタムフィールドのリストを取得するため、この

$orders = new WP_Query(array('post_type' => 'orders')); 
foreach ($orders->posts as $allPosts) { 
$field  = get_field('your field name', $allPosts->ID); 
} 
+0

私はここに記入する必要があります: ''あなたのフィールド名 '?リピーター 'アジェンダ 'とリピーターのポストオブジェクト' name'というタブフィールド 'purchases'があるので、ちょっと混乱します。そして、あなたのリピータのフィールド名をここに追加するには、「名前」値 –

+0

が必要です。 –

+0

'$ field'は私に各注文のすべての値の配列を与えますか? –

0

使用get_post_custom関数のように使用してみてください取得するためのメソッドがあります。

1

これまでのところは良い、すでにカスタムクエリを作成している:

$loopargs = array(//in the array are arguments for custom query    
    'post_type' => 'orders', //your CPT 
    'posts_per_page' => -1, //lets make WP show them all 
    'orderby' => 'date', // newest 
    'order' => 'DESC', //to the top 
); 
$query = new WP_Query($loopargs); 

今、それを通して私たちのループを聞かせて:

while ($query->have_posts()) : $query->the_post(); //the_post loads for you current post in loop so that you can use functions like the_title(), the_content(), etc.. 

ACFプラグインについて:

the_field('your_field_name'); //will output field content directly get_field('your_field_name'); //returns value from your custom field get_fields(); //returns array of your fields

これらのACFプラグインの機能は、私たちがthe_post()の投稿を毎回whileループに設定したときのループでのみ機能することに注意してください。それ以外の場合は、POST_IDを第2(最初の2つ)として渡し、ACF関数の最初のパラメータとして渡す必要があります。

また、すべてのカスタムクエリの後にクエリをリセットする必要はありません。もちろん、私たちのループを終わらせる。

endwhile; 
wp_reset_query(); 

参照

Class Reference/WP Query

Function Reference/the post

ACF Documentation

Wordpress The Loop

あなたがこれを行うだろう質問から、あなたの配列の要素にアクセスするには、[編集]

$title = $array[0][0]['attractie']->post_title; 
$start = $array[0][0]['start']; 
$end = $array[0][0]['end']; 

しかし、これは本当にあなたがそれを行う必要がありませ方法です。

+0

こんにちは、私は現在使用しているコードでOPを更新しました。もしあなたがそれをチェックしてください。 –

+0

私は答えのすべてを説明しようとしました。 –

+0

私はOPで説明した3つの値をどのように得ることができるのか分かりますか?アトラクティブ投稿の 'post_title'と' start'と 'end'の値は? –

関連する問題