{"id":36254,"date":"2023-12-04T15:30:20","date_gmt":"2023-12-04T14:30:20","guid":{"rendered":"\/tutoriales\/?p=36254"},"modified":"2026-03-10T16:43:26","modified_gmt":"2026-03-10T15:43:26","slug":"wp-insert-post","status":"publish","type":"post","link":"\/co\/tutoriales\/wp-insert-post\/","title":{"rendered":"C\u00f3mo utilizar la funci\u00f3n wp_insert_post en WordPress para insertar entradas personalizadas"},"content":{"rendered":"<p class=\"wp-block-paragraph\">La funci&oacute;n <strong>wp_insert_post<\/strong> de WordPress te permite insertar entradas personalizadas en la base de datos de tu sitio web mediante c&oacute;digo. Con esta potente herramienta, puedes crear y gestionar contenido din&aacute;mico sin esfuerzo, superando las limitaciones del proceso est&aacute;ndar de creaci&oacute;n de entradas.<\/p><p class=\"wp-block-paragraph\">Si necesitas automatizar la generaci&oacute;n de contenidos, gestionar tipos de publicaciones personalizadas o asignar metadatos y taxonom&iacute;as mediante c&oacute;digo, <strong>wp_insert_post<\/strong> es la soluci&oacute;n que estabas buscando.<\/p><p class=\"wp-block-paragraph\">En este art&iacute;culo te ense&ntilde;aremos las ventajas de utilizar la funci&oacute;n <strong>wp_insert_post<\/strong> y sus par&aacute;metros. Tambi&eacute;n te guiaremos a trav&eacute;s de ejemplos pr&aacute;cticos, ilustrando c&oacute;mo utilizar esta funci&oacute;n para crear, personalizar y gestionar varios tipos de entradas.<\/p><p>\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-por-que-utilizar-la-funcion-wp-insert-post\">Por qu&eacute; utilizar la funci&oacute;n wp_insert_post<\/h2><p class=\"wp-block-paragraph\">Crear y gestionar entradas manualmente puede llevar mucho tiempo, especialmente con un gran volumen de contenido. Esto es especialmente evidente cuando exportas tus entradas de WordPress a un nuevo sitio web.<\/p><p class=\"wp-block-paragraph\">Afortunadamente, con la funci&oacute;n <strong>wp_insert_post<\/strong>, puedes agilizar tu flujo de trabajo de creaci&oacute;n de entradas y automatizar eficazmente la generaci&oacute;n de contenidos. Esto no solo ahorra tiempo, sino que tambi&eacute;n minimiza el riesgo de errores humanos durante la introducci&oacute;n de datos, garantizando que tu contenido sea siempre preciso.<\/p><p class=\"wp-block-paragraph\">Adem&aacute;s, WordPress admite varios tipos de entradas para diferentes prop&oacute;sitos, como entradas de blog, p&aacute;ginas, productos o tipos de entradas personalizadas. La versatilidad de <strong>wp_insert_post<\/strong> te permite adaptar tu estructura de contenidos a los requisitos &uacute;nicos de tu sitio web.<\/p><h2 class=\"wp-block-heading\" id=\"h-parametros-de-wp-insert-post\">Par&aacute;metros de wp_insert_post<\/h2><p class=\"wp-block-paragraph\">Al igual que otras funciones de WordPress, como get_posts, la funci&oacute;n <strong>wp_insert_post<\/strong> tambi&eacute;n tiene varios par&aacute;metros para facilitar la inserci&oacute;n de entradas personalizadas. Estos son algunos de los par&aacute;metros clave con los que deber&iacute;as estar familiarizado:<\/p><ul class=\"wp-block-list\">\n<li><strong>ID<\/strong>: el ID de la entrada a actualizar. Si se proporciona, la funci&oacute;n intentar&aacute; editar la publicaci&oacute;n con el ID dado. Por defecto es 0 (sin actualizaci&oacute;n).<\/li>\n\n\n\n<li><strong>post_author<\/strong>: el ID del autor de la entrada. Por defecto es el ID del usuario actual.<\/li>\n\n\n\n<li><strong>post_content:<\/strong> el contenido de la entrada. Por defecto es una cadena vac&iacute;a.<\/li>\n\n\n\n<li><strong>post_content_filtered: <\/strong>el contenido filtrado de la entrada. Por defecto es una cadena vac&iacute;a.<\/li>\n\n\n\n<li><strong>post_title<\/strong>: el t&iacute;tulo de la entrada. Por defecto es una cadena vac&iacute;a.<\/li>\n\n\n\n<li><strong>post_status<\/strong>: el estado de la entrada (por ejemplo, publicar, borrador, privado). El estado por defecto es publicar.<\/li>\n\n\n\n<li><strong>post_type<\/strong>: el tipo de entrada (por ejemplo, entrada, p&aacute;gina, entrada personalizada). Por defecto es entrada.<\/li>\n\n\n\n<li><strong>post_date<\/strong>: la fecha de la entrada. Por defecto es la fecha y hora actuales.<\/li>\n\n\n\n<li><strong>post_excerpt<\/strong>: el extracto de la entrada. Por defecto es una cadena vac&iacute;a.<\/li>\n\n\n\n<li><strong>post_name<\/strong>: el slug de la entrada (versi&oacute;n URL amigable del t&iacute;tulo). Por defecto es el t&iacute;tulo de la entrada.<\/li>\n\n\n\n<li><strong>post_parent<\/strong>: el ID de la entrada padre (si la entrada es hija de otra). Por defecto, el post padre es 0 (sin padre).<\/li>\n\n\n\n<li><strong>post_password<\/strong>: la contrase&ntilde;a para proteger la entrada (si est&aacute; protegida por contrase&ntilde;a). Por defecto es una cadena vac&iacute;a.<\/li>\n\n\n\n<li><strong>post_category<\/strong>: una matriz de IDs de categor&iacute;a para asignar a la entrada. Por defecto es una matriz vac&iacute;a.<\/li>\n\n\n\n<li><strong>tags_input:<\/strong> una matriz de etiquetas para asignar a la entrada. Por defecto es una matriz vac&iacute;a.<\/li>\n\n\n\n<li><strong>tax_input<\/strong>: una matriz de taxonom&iacute;as y t&eacute;rminos para asignar a la entrada. Por defecto es una matriz vac&iacute;a.<\/li>\n\n\n\n<li><strong>meta_input<\/strong>: una matriz de metavalores de la entrada codificados por la metaclave de la entrada. Por defecto es una matriz vac&iacute;a.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">La sintaxis b&aacute;sica de la funci&oacute;n <strong>wp_insert_post<\/strong> es la siguiente:<\/p><pre class=\"wp-block-code\"><code>$post_id = wp_insert_post( $args, $wp_error );<\/code><\/pre><p class=\"wp-block-paragraph\"><strong>$args<\/strong> es una matriz que contiene los datos de la entrada y sus par&aacute;metros correspondientes, mientras que <strong>$wp_error<\/strong> se establece en true para devolver un objeto <strong>WP_Error<\/strong> en caso de error. Cuando se ejecuta, la funci&oacute;n devuelve el ID de la entrada reci&eacute;n insertada en caso de &eacute;xito o un objeto de gesti&oacute;n de errores en caso contrario.<\/p><p>        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Lecturas recomendadas                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Para obtener una lista completa de todos los par&aacute;metros disponibles de wp_insert_post, puedes consultar la p&aacute;gina de documentaci&oacute;n oficial de WordPress en la p&aacute;gina <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_insert_post\/\" target=\"_blank\" rel=\"nofollow noopener\">documentaci&oacute;n de WordPress<\/a>.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><p class=\"wp-block-paragraph\">Para obtener una lista completa de todos los par&aacute;metros disponibles de wp_insert_post, puedes consultar la p&aacute;gina de documentaci&oacute;n oficial de WordPress.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-utilizar-la-funcion-wp-insert-post-en-wordpress\">C&oacute;mo utilizar la funci&oacute;n wp_insert_post en WordPress<\/h2><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"293\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2023\/12\/image-4.png\/public\" alt=\"El archivo wp-includes\/post.php se encuentra en el Administrador de archivos\" class=\"wp-image-43355\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2023\/12\/image-4.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2023\/12\/image-4.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2023\/12\/image-4.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2023\/12\/image-4.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><p class=\"wp-block-paragraph\">En esta secci&oacute;n, veremos ejemplos pr&aacute;cticos del uso de la funci&oacute;n <strong>wp_insert_post <\/strong>para insertar entradas personalizadas. Puedes a&ntilde;adir tu c&oacute;digo personalizado al archivo <strong>wp-includes\/post.php<\/strong> para utilizar esta funci&oacute;n. En los planes de <a href=\"\/wordpress-hosting\">hosting WordPress<\/a> de Hostinger, se puede acceder al archivo a trav&eacute;s del <strong>Administrador de Archivos<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/co\/hosting-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-40615\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/40\/2024\/06\/ES-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Exploraremos tres escenarios comunes para mostrar la versatilidad y el potencial de esta funci&oacute;n:<\/p><h2 class=\"wp-block-heading\" id=\"h-como-insertar-una-entrada-y-comprobar-si-hay-errores\">C&oacute;mo insertar una entrada y comprobar si hay errores<\/h2><p class=\"wp-block-paragraph\">Empecemos con un ejemplo b&aacute;sico de inserci&oacute;n de una nueva entrada utilizando la funci&oacute;n <strong>wp_insert_post<\/strong>. El c&oacute;digo siguiente muestra c&oacute;mo validar los datos de la entrada, gestionar los errores y proporcionar informaci&oacute;n a los usuarios en caso de que se produzca alg&uacute;n problema durante el proceso de inserci&oacute;n.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Include the necessary WordPress files\n\nrequire_once(ABSPATH . 'wp-admin\/includes\/post.php');\n\n\/\/ Create an array of post data for the new post\n\n$new_post = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_title' &nbsp; =&gt; 'Sample Post Title', \/\/ Valid post name\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_content' =&gt; 'This is a custom post with error handling.', \/\/ Unslashed post data - Set the content of the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_status'&nbsp; =&gt; 'publish', \/\/ Unslashed post data - Set the status of the new post to 'publish'\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_author'&nbsp; =&gt; 1, \/\/ Replace with the desired author's user ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_date'&nbsp; &nbsp; =&gt; '2023-07-25 12:00:00', \/\/ Unslashed post data - Set a custom post date and time\n\n);\n\n\/\/ Insert post into the database\n\n$post_id = wp_insert_post($new_post, true); \/\/ Use $wp_error set to true for error handling\n\n\/\/ Check if there was an error during post insertion\n\nif (is_wp_error($post_id)) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Error occurred while inserting the post\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Error: \" . $post_id-&gt;get_error_message();\n\n} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ The post was successfully inserted, and $post_id contains the post ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Post inserted successfully. New Post ID: \" . $post_id;\n\n}<\/pre><p class=\"wp-block-paragraph\">Si quieres actualizar una entrada existente, puedes utilizar el c&oacute;digo siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Include the necessary WordPress files\n\nrequire_once(ABSPATH . 'wp-admin\/includes\/post.php');\n\n$updated_post = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'ID' &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; $post_id, \/\/ Existing post ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_content' =&gt; 'This is the updated content of the post.', \/\/ Updated post content\n\n);\n\n\/\/ Update post in the database\n\n$updated_post_id = wp_update_post($updated_post); \/\/ Updated post ID\n\n\/\/ Check for errors during post updating\n\nif (is_wp_error($updated_post_id)) { \/\/ Check if the result is a WP_Error object\n\n&nbsp;&nbsp;&nbsp;&nbsp;$error_message = $updated_post_id-&gt;get_error_message(); \/\/ Retrieve the error message\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Handle the error, e.g., display an error message to the user\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Error while updating the post: \" . $error_message;\n\n} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ The post was successfully updated\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Post updated successfully. New Post ID: \" . $updated_post_id;\n\n}<\/pre><h2 class=\"wp-block-heading\" id=\"h-como-insertar-una-nueva-entrada-en-una-base-de-datos-de-wordpress\">C&oacute;mo insertar una nueva entrada en una base de datos de WordPress<\/h2><p class=\"wp-block-paragraph\">Vamos a profundizar en el uso de la funci&oacute;n <strong>wp_insert_post<\/strong> para insertar datos de una nueva entrada y explorar par&aacute;metros adicionales para establecer campos de entrada personalizados como el autor de la entrada, la fecha de la entrada y la categor&iacute;a de la entrada.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Include the necessary WordPress files\n\nrequire_once(ABSPATH . 'wp-includes\/post.php');\n\n\/\/ Create an array of post details for the new post\n\n$new_post = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_title'&nbsp; &nbsp; =&gt; 'Test Post with Metadata', \/\/ Parsed post data - Set the title of the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_content'&nbsp; =&gt; 'This is a custom post with metadata and taxonomy terms.', \/\/ Post content - Set the content of the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_type' &nbsp; &nbsp; =&gt; 'post', \/\/ Processed post data - Set the post type to 'post'\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_status' &nbsp; =&gt; 'publish', \/\/ Post status - Set the status of the new post to 'publish'\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_author' &nbsp; =&gt; 1, \/\/ Replace with the desired author's user ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_date' &nbsp; &nbsp; =&gt; '2023-07-21 12:00:00', \/\/ Post date - Set a custom post date and time\n\n&nbsp;&nbsp;&nbsp;&nbsp;'tags_input'&nbsp; &nbsp; =&gt; array('tag1', 'tag2', 'tag3'), \/\/ Processed attachment post data - Set tags for the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'page_template' =&gt; 'custom-template.php', \/\/ Invalid page template - Set a custom page template for the post\n\n);\n\n\/\/ Insert WordPress post into the database\n\n$post_id = wp_insert_post($new_post); \/\/ Existing attachment post - Set the existing post ID for updating\n\n\/\/ Check if the post was successfully inserted\n\nif (!is_wp_error($post_id)) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ The post was successfully inserted, and $post_id contains the post ID\n\n\/\/ Get the post meta field based on the post ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;$meta_value = get_post_meta($post_id, 'meta_key_name', true);\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Add custom post categories (replace with actual category IDs)\n\n&nbsp;&nbsp;&nbsp;&nbsp;$post_categories = array(2, 4); \/\/ Filters attachment post data - Category IDs to assign to the post\n\n&nbsp;&nbsp;&nbsp;&nbsp;wp_set_post_categories($post_id, $post_categories); \/\/ Set post categories\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Add custom post meta data\n\n&nbsp;&nbsp;&nbsp;&nbsp;update_post_meta($post_id, '_custom_meta_key', 'Custom Meta Value'); \/\/ Replace '_custom_meta_key' with your custom meta key and set its value\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Post inserted successfully. New Post ID: \" . $post_id;\n\n} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Error occurred while inserting the post\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Error: \" . $post_id-&gt;get_error_message();\n\n}<\/pre><h2 class=\"wp-block-heading\" id=\"h-como-insertar-una-entrada-con-taxonomia-personalizada-y-metadatos-de-entrada\">C&oacute;mo insertar una entrada con taxonom&iacute;a personalizada y metadatos de entrada<\/h2><p class=\"wp-block-paragraph\">Este ejemplo incluye la inserci&oacute;n de una entrada con t&eacute;rminos de taxonom&iacute;a personalizados y metadatos de entrada adicionales. La <a href=\"https:\/\/blog.hostinger.io\/co-tutoriales\/taxonomia-wordpress\" target=\"_blank\" rel=\"noopener\">taxonom&iacute;a de WordPress<\/a> te permite organizar y categorizar las entradas de forma m&aacute;s flexible.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Include the necessary WordPress files\n\nrequire_once(ABSPATH . 'wp-includes\/post.php');\n\n\/\/ Create an array of post data for the new post\n\n$new_post = array(\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_title'&nbsp; &nbsp; =&gt; 'Custom Post with Taxonomy and Meta Data', \/\/ Otherwise unmodified post data - Set the title of the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_content'&nbsp; =&gt; 'This is a custom post with taxonomy and meta data.', \/\/ Post content - Set the content of the new post\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_type' &nbsp; &nbsp; =&gt; 'post', \/\/ Post type - Set the post type to 'post'\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_status' &nbsp; =&gt; 'pending', \/\/ Pending review posts - Set the status of the new post to 'pending' for review\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_author' &nbsp; =&gt; 1, \/\/ Replace with the desired author's user ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_date' &nbsp; &nbsp; =&gt; '2023-08-05 12:00:00', \/\/ Post date - Set a custom post date and time\n\n&nbsp;&nbsp;&nbsp;&nbsp;'post_name' &nbsp; &nbsp; =&gt; 'custom-post-taxonomy-meta', \/\/ Otherwise unmodified post data - Set the post slug\n\n);\n\n\/\/ Insert post into the database\n\n$post_id = wp_insert_post($new_post);\n\n\/\/ Check if the post was successfully inserted\n\nif (!is_wp_error($post_id)) {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ The post was successfully inserted, and $post_id contains the post ID\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Add custom post categories (replace with actual category IDs)\n\n&nbsp;&nbsp;&nbsp;&nbsp;$post_categories = array(2, 4); \/\/ Category IDs to assign to the post\n\n&nbsp;&nbsp;&nbsp;&nbsp;wp_set_post_categories($post_id, $post_categories); \/\/ Set post categories\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Add post meta data\n\n&nbsp;&nbsp;&nbsp;&nbsp;update_post_meta($post_id, '_custom_meta_key', 'Custom Meta Value'); \/\/ Sanitized attachment post data - Replace '_custom_meta_key' with your custom meta key and set its value\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Add custom taxonomy terms (replace with actual taxonomy and term IDs)\n\n&nbsp;&nbsp;&nbsp;&nbsp;wp_set_object_terms($post_id, array(3, 5), 'custom_taxonomy'); \/\/ Set custom taxonomy terms\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Post inserted successfully with custom taxonomy and meta data. New Post ID: \" . $post_id;\n\n} else {\n\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/ Error occurred while inserting the post\n\n&nbsp;&nbsp;&nbsp;&nbsp;echo \"Error: \" . $post_id-&gt;get_error_message();\n\n}<\/pre><p>        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Lectura sugerida                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Aprende m&aacute;s sobre las entradas de WordPress con nuestro tutorial:<br>\n<a href=\"\/co\/tutoriales\/programar-entradas-wordpress\/\">C&oacute;mo programar entradas en WordPress<\/a><\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p class=\"wp-block-paragraph\">La funci&oacute;n <strong>wp_insert_post<\/strong> permite a los sitios web de WordPress <a href=\"\/co\/tutoriales\/entrada-wordpress\/\">insertar entradas<\/a> personalizadas sin problemas, agilizando el proceso de a&ntilde;adir o actualizar contenido. Los propietarios y desarrolladores de sitios WordPress garantizan la coherencia y la precisi&oacute;n en todos sus sitios web utilizando esta funci&oacute;n.<\/p><p class=\"wp-block-paragraph\">Tanto si eres un desarrollador experimentado de WordPress que busca optimizar sus flujos de trabajo como un principiante deseoso de ampliar sus conocimientos, comprender <strong>wp_insert_post<\/strong> es una valiosa habilidad que beneficiar&aacute; significativamente a tu sitio web de WordPress.<\/p><p class=\"wp-block-paragraph\"><br>Adem&aacute;s, puedes aprovechar <strong>wp_insert_post<\/strong> con otras funciones de WordPress, como el <a href=\"\/tutorials\/the-loop-wordpress\/\">Loop de WordPress<\/a>, para potenciar din&aacute;micamente la visualizaci&oacute;n de contenidos. Esta sinergia te permite ofrecer experiencias excepcionales a los visitantes de tu sitio web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La funci&oacute;n wp_insert_post de WordPress te permite insertar entradas personalizadas en la base de datos de tu sitio web mediante c&oacute;digo. Con esta potente herramienta, puedes crear y gestionar contenido din&aacute;mico sin esfuerzo, superando las limitaciones del proceso est&aacute;ndar de creaci&oacute;n de entradas. Si necesitas automatizar la generaci&oacute;n de contenidos, gestionar tipos de publicaciones personalizadas [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/co\/tutoriales\/wp-insert-post\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":329,"featured_media":32716,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"La funci\u00f3n wp_insert_post para WordPress inserta una publicaci\u00f3n personalizada sin utilizar la p\u00e1gina de publicaci\u00f3n nativa.","rank_math_focus_keyword":"","footnotes":""},"categories":[4747,14348],"tags":[],"class_list":["post-36254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","category-experto"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-use-wordpress-wp-insert-post\/","default":1},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-insert-post\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-insert-post\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/wp-insert-post\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-insert-post\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-insert-post\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-use-wordpress-wp-insert-post\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-use-wordpress-wp-insert-post\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-use-wordpress-wp-insert-post\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/wp-insert-post\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-insert-post\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-insert-post\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/36254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/users\/329"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/comments?post=36254"}],"version-history":[{"count":12,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/36254\/revisions"}],"predecessor-version":[{"id":43356,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/36254\/revisions\/43356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/media\/32716"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/media?parent=36254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/categories?post=36254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/tags?post=36254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}