💥 Crea y guarda un nuevo post en la base de datos de WordPress. Puede ser de cualquier tipo, como una entrada de blog, una página, un tipo de contenido personalizado, etc.
💥 Acepta un array de parámetros que definen las propiedades del post como: post_title (título del post), post_content (contenido del post), post_status (estado del post), post_type (tipo de post), post_author (autor del post), y muchos otros.
💥 wp_insert_post() valida los datos proporcionados para asegurarse de que sean válidos y seguros. Esto incluye la limpieza de los datos para evitar ataques de inyección de SQL y otras vulnerabilidades de seguridad.
💥 Devuelve el ID del post recién insertado si la inserción se realizó con éxito.
💥 Si ocurre algún error durante el proceso de inserción, la función devuelve 0 o WP_Error dependiendo de la configuración. Esto permite gestionar los errores de forma adecuada.
💥 Dispara una serie de Hooks de acción durante el proceso de inserción del post. Esto permite ejecutar código personalizado antes o después de que se inserte el post en la base de datos.
💥 Utilízalo en desarrollo de Intranets o área de usuarios, añadir productos, nuevos eventos, sistema de soporte, formulario para añadir contenido a una API, Noticias, CRM, blog, directorios, testimonios, ofertas de trabajo… Cualquier contenido que pueda introducir el usuario.
// Creamos un nuevo post
$new_post = array(
'post_title' => 'Título del nuevo post',
'post_content' => 'Contenido del nuevo post',
'post_status' => 'publish', // Estado del post (publicado)
'post_author' => 1, // ID del autor del post (1 es el ID del usuario administrador por defecto)
'post_type' => 'post' // Tipo de post (puede ser 'post', 'page', u otro tipo de post personalizado)
);
// Insertamos el nuevo post en la base de datos
$new_post_id = wp_insert_post($new_post);
// Comprobamos si se insertó correctamente
if ($new_post_id) {
echo "¡Enhorabuena! Tu post se ha publicado correctamente con ID: " . $new_post_id;
} else {
echo "Error al insertar el nuevo post.";
}

https://developer.wordpress.org/reference/functions/wp_insert_post