Files
feadulta/wordpress/smart_import_libros.php
T
rafa 668d973889 Initial commit — migración Joomla→WordPress feadulta.org
Incluye: mu-plugins custom (fea-homepage, carta-semana), scripts de
migración/traducción/deploy, documentación de auditoría, análisis de
cartas y HTML de evangelios exportados desde Joomla.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 08:33:12 -04:00

61 lines
2.0 KiB
PHP

<?php
// Configuration
$target_folder_name = 'libros';
$fbv_folder_id = 5; // ID for 'Libros'
global $wpdb;
$fbv_rel_table = $wpdb->prefix . 'fbv_attachment_folder';
// Define paths
$uploads = wp_upload_dir();
$base_dir = $uploads['basedir'];
$source_dir = $base_dir . '/' . $target_folder_name;
if (!is_dir($source_dir)) {
die("Error: Source directory '$source_dir' not found.\n");
}
// Get all files
$files = glob($source_dir . '/*');
echo "Found " . count($files) . " files in '$target_folder_name'.\n";
$count_imported = 0;
foreach ($files as $file) {
if (is_dir($file)) continue;
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($ext, ['html', 'php', 'ds_store'])) continue;
$filename = basename($file);
// echo "Processing: $filename... ";
// Run wp media import via shell_exec using FULL PATH
// Note: Since we are running as www-data via docker exec, wp should be executable.
// We add --porcelain to get just the ID.
// We add --allow-root because in some contexts inside docker it might be needed, though we run as www-data.
// Actually, running 'wp' inside 'wp eval-file' might be tricky due to recursion locks or environment.
// But let's try.
$cmd = "/usr/local/bin/wp media import " . escapeshellarg($file) . " --porcelain --allow-root 2>&1";
$output = shell_exec($cmd);
$attachment_id = trim($output);
if (is_numeric($attachment_id) && $attachment_id > 0) {
// Success! Now assign to FileBird folder
$wpdb->insert(
$fbv_rel_table,
array(
'folder_id' => $fbv_folder_id,
'attachment_id' => $attachment_id
)
);
// echo "Imported (ID: $attachment_id) & Assigned.\n";
$count_imported++;
} else {
echo "Failed to import $filename. Output: $output\n";
}
}
echo "------------------------------------------------\n";
echo "Total imported and assigned to folder '$target_folder_name' (ID: $fbv_folder_id): $count_imported\n";
?>