回答編集履歴

1

追記修正

2019/01/29 14:28

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -11,3 +11,139 @@
11
11
 
12
12
 
13
13
  基本的な部分は、前回の( [【wordpress】Flamingoのエクスポートについて](https://teratail.com/questions/169538) )と同じなので、カスタムフィールドのデータを取得できれば対応できると思います。
14
+
15
+
16
+
17
+ ----
18
+
19
+
20
+
21
+ コメント欄を拝見して...
22
+
23
+ いろいろツッコミどころがありそうですが、気がついた点として...
24
+
25
+
26
+
27
+ * `get_field()` を使われていますが、`get_field()` は、Advanced Custom Fields ( [https://www.advancedcustomfields.com](https://www.advancedcustomfields.com) ) の関数なので、Advanced Custom Fields プラグインがインストールされていないと PHPのエラーが発生します。
28
+
29
+
30
+
31
+ * `$fields_str .= $myterm-> ." _field_your-partner ";` も アロー演算子(`->`) と 結合演算子(`.`) が連続しているので、文法エラーですね。
32
+
33
+
34
+
35
+ * `$item->id` で取得できるのは、アドレス帳の「投稿ID」で、メッセージの「投稿ID」ではありませんので、`$item->id` でメッセージを取得することはできません。
36
+
37
+
38
+
39
+ ----
40
+
41
+
42
+
43
+ 手順としては、
44
+
45
+
46
+
47
+ 1.カスタム投稿タイプ flamingo_inbound から、メールアドレスが一致するメッセージの投稿IDを検索
48
+
49
+ 2.メッセージの投稿IDからカスタムフィールドを検索
50
+
51
+ 3.アドレス帳のデータと一緒に出力
52
+
53
+
54
+
55
+ という感じでしょうか。
56
+
57
+
58
+
59
+ コメントに記載された内容を書き直すとこんな感じでしょうか。
60
+
61
+
62
+
63
+ ```
64
+
65
+ foreach ( $items as $item ) {
66
+
67
+
68
+
69
+ $terms_str = "";
70
+
71
+ $myterms = get_the_terms( $item->id, 'flamingo_contact_tag' );
72
+
73
+ foreach( $myterms as $myterm ){
74
+
75
+ $terms_str .= $myterm->name ." ";
76
+
77
+ }
78
+
79
+
80
+
81
+ $args = array(
82
+
83
+ 'post_type' => 'flamingo_inbound',
84
+
85
+ 'posts_per_page' => -1,
86
+
87
+ 'meta_query' => array(
88
+
89
+ array(
90
+
91
+ 'key' => '_from_email',
92
+
93
+ 'value' => $item->email,
94
+
95
+ )
96
+
97
+ ),
98
+
99
+ );
100
+
101
+ $fields = get_posts( $args );
102
+
103
+
104
+
105
+ $flds = array();
106
+
107
+ foreach( $fields as $field ){
108
+
109
+ $flds[] = get_post_meta( $field->ID, '_field_your-partner', true );
110
+
111
+ }
112
+
113
+
114
+
115
+ $row = array(
116
+
117
+ $item->email,
118
+
119
+ $item->get_prop( 'name' ),
120
+
121
+ $item->get_prop( 'first_name' ),
122
+
123
+ $item->get_prop( 'last_name' ),
124
+
125
+ $terms_str,
126
+
127
+ implode( ' ', $flds )
128
+
129
+ );
130
+
131
+
132
+
133
+ echo "\r\n" . flamingo_csv_row( $row );
134
+
135
+ }
136
+
137
+ ```
138
+
139
+
140
+
141
+ 参考URL:
142
+
143
+ * [implode - PHPマニュアル](http://php.net/manual/ja/function.implode.php)
144
+
145
+ * [https://wpdocs.osdn.jp/カスタムフィールドの使い方](https://wpdocs.osdn.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9)
146
+
147
+ * [http://wpdocs.osdn.jp/テンプレートタグ/get_posts](http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts)
148
+
149
+ * [https://wpdocs.osdn.jp/関数リファレンス/get_post_meta](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post_meta)