-> escribe /tmp/fea_es.json {title, content, status} * update -> actualiza post_title/post_content desde ficheros * Carga wp-load; portable (local docker o prod via FEA_WP_LOAD). */ $WP = getenv('FEA_WP_LOAD') ?: '/var/www/html/wp-load.php'; require $WP; $action = $argv[1] ?? ''; if ($action === 'get') { $id = (int)$argv[2]; $p = get_post($id); if (!$p) { fwrite(STDERR, "no existe $id\n"); exit(1); } file_put_contents('/tmp/fea_es.json', json_encode([ 'id' => $id, 'title' => $p->post_title, 'content' => $p->post_content, 'status' => $p->post_status, ], JSON_UNESCAPED_UNICODE)); exit(0); } if ($action === 'update') { $id = (int)$argv[2]; $title = rtrim(file_get_contents($argv[3]), "\r\n"); $body = file_get_contents($argv[4]); if (!get_post($id)) { fwrite(STDERR, "no existe $id\n"); exit(1); } $r = wp_update_post([ 'ID' => $id, 'post_title' => $title, 'post_content' => $body, ], true); if (is_wp_error($r)) { fwrite(STDERR, "error: " . $r->get_error_message() . "\n"); exit(1); } fwrite(STDOUT, "ok actualizado $id\n"); exit(0); } if ($action === 'getmeta') { echo get_post_meta((int)$argv[2], $argv[3], true); exit(0); } if ($action === 'setaudio') { // setaudio $id = (int)$argv[2]; update_post_meta($id, 'fea_audio_url', home_url($argv[3])); update_post_meta($id, 'fea_audio_voice', 'NicoFeadulta2026'); update_post_meta($id, 'fea_audio_done', '1'); delete_post_meta($id, 'fea_audio_error'); fwrite(STDOUT, "ok " . home_url($argv[3]) . "\n"); exit(0); } if ($action === 'setflag') { // setflag update_post_meta((int)$argv[2], $argv[3], $argv[4]); exit(0); } fwrite(STDERR, "uso: get|update|getmeta|setaudio|setflag\n"); exit(2);