// TEMP: Keyphrase bulk importer via REST add_action('rest_api_init', function() { register_rest_route('lsc/v1', '/bulk-kw', array( 'methods' => 'POST', 'callback' => 'lsc_process_kw_csv', 'permission_callback' => function() { return current_user_can('manage_options'); } )); }); function lsc_process_kw_csv($request) { $csv = $request->get_param('csv'); $rows = explode("\n", $csv); $updated = 0; $errors = array(); foreach ($rows as $i => $row) { if ($i === 0 || empty(trim($row))) continue; $cols = str_getcsv($row); $post_id = intval($cols[0] ?? 0); $kw = sanitize_text_field($cols[1] ?? ''); if ($post_id > 0 && !empty($kw)) { update_post_meta($post_id, '_yoast_wpseo_focuskw', $kw); $updated++; } else { $errors[] = "row $i: id=$post_id kw=$kw"; } } return new WP_REST_Response(array('updated'=>$updated,'errors'=>count($errors),'sample_errors'=>array_slice($errors,0,5)), 200); } // END TEMP