$post_type, 'posts_per_page' => -1, 'post_status' => 'publish' ]); foreach ($members as $member) { // 獲取所有 ACF 欄位 $fields = get_fields($member->ID); // 如果沒有 ACF 欄位,跳過 if (empty($fields)) { continue; } // 基本資訊 $member_data = [ 'id' => $member->ID, 'title' => $member->post_title, 'slug' => $member->post_name, 'content' => $member->post_content, 'excerpt' => $member->post_excerpt, 'status' => $member->post_status, 'post_type' => $member->post_type, 'published_at' => $member->post_date, // ACF 欄位 (所有自定義欄位) 'acf_fields' => $fields, // 常見的董事會成員欄位 (根據你的實際欄位名稱調整) 'name' => get_field('name', $member->ID), 'position' => get_field('position', $member->ID), 'title_field' => get_field('title', $member->ID), 'company' => get_field('company', $member->ID), 'bio' => get_field('bio', $member->ID) ?: get_field('biography', $member->ID), 'email' => get_field('email', $member->ID), 'phone' => get_field('phone', $member->ID), 'linkedin' => get_field('linkedin', $member->ID), 'order' => get_field('order', $member->ID) ?: get_field('display_order', $member->ID), // 特色圖片 'featured_image' => get_the_post_thumbnail_url($member->ID, 'full'), // 照片欄位 (如果 ACF 有設置圖片欄位) 'photo' => null, 'photo_url' => null, ]; // 處理 ACF 圖片欄位 $photo_field = get_field('photo', $member->ID); if ($photo_field) { if (is_array($photo_field)) { // 如果返回陣列 (設定為返回 Image Array) $member_data['photo'] = $photo_field; $member_data['photo_url'] = $photo_field['url'] ?? null; } else { // 如果返回 URL (設定為返回 Image URL) $member_data['photo_url'] = $photo_field; } } // 處理其他可能的圖片欄位 foreach (['avatar', 'headshot', 'profile_picture'] as $img_field) { $img = get_field($img_field, $member->ID); if ($img) { $member_data[$img_field] = is_array($img) ? $img['url'] : $img; } } // 分類 $categories = wp_get_post_categories($member->ID, ['fields' => 'all']); $member_data['categories'] = array_map(fn($cat) => [ 'id' => $cat->term_id, 'name' => $cat->name, 'slug' => $cat->slug ], $categories); // 標籤 $tags = wp_get_post_tags($member->ID); $member_data['tags'] = array_map(fn($tag) => $tag->name, $tags); $all_members[] = $member_data; } } // 導出 JSON $output_file = 'board_members_export.json'; file_put_contents( $output_file, json_encode($all_members, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) ); echo "Exported " . count($all_members) . " board members to {$output_file}\n"; // 同時輸出 ACF 欄位結構供參考 $field_groups = []; if (function_exists('acf_get_field_groups')) { $groups = acf_get_field_groups(); foreach ($groups as $group) { $fields = acf_get_fields($group['key']); $field_groups[] = [ 'title' => $group['title'], 'key' => $group['key'], 'fields' => array_map(fn($f) => [ 'name' => $f['name'], 'label' => $f['label'], 'type' => $f['type'], ], $fields ?: []) ]; } } file_put_contents( 'acf_field_structure.json', json_encode($field_groups, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) ); echo "ACF field structure exported to acf_field_structure.json\n";