get_results("SELECT ID, display_name FROM wp_users WHERE ID > 1"); $created = 0; $assigned = 0; foreach ($users as $user) { $user_id = $user->ID; $name = $user->display_name; if (empty($name)) continue; // Crear categoria $term = get_term_by('name', $name, 'category'); if (!$term) { $result = wp_insert_term($name, 'category', array( 'slug' => sanitize_title($name), 'description' => 'Autor: ' . $name )); if (is_wp_error($result)) { echo "Error: $name\n"; continue; } $term_id = $result['term_id']; $created++; } else { $term_id = $term->term_id; } // Buscar posts con este autor (meta_value = user_id) $posts = $wpdb->get_col($wpdb->prepare(" SELECT DISTINCT pm.post_id FROM wp_postmeta pm JOIN wp_posts p ON pm.post_id = p.ID WHERE pm.meta_key = 'Autor' AND pm.meta_value = %s AND p.post_type = 'post' AND p.post_status = 'publish' ", $user_id)); foreach ($posts as $post_id) { wp_set_object_terms($post_id, $term_id, 'category', true); $assigned++; } if (count($posts) > 0) { echo "$name: " . count($posts) . " posts\n"; } } echo "\nCategorias creadas: $created\n"; echo "Asignaciones: $assigned\n"; echo "=== FIN ===\n";