{"id":1943,"date":"2023-06-29T10:00:00","date_gmt":"2023-06-29T15:00:00","guid":{"rendered":"http:\/\/racmanuel.dev\/?p=1943"},"modified":"2023-06-27T10:50:16","modified_gmt":"2023-06-27T15:50:16","slug":"como-crear-custom-post-types-sin-plugins-en-wordpress","status":"publish","type":"post","link":"https:\/\/racmanuel.dev\/en\/como-crear-custom-post-types-sin-plugins-en-wordpress\/","title":{"rendered":"How to create custom post types without plugins in WordPress"},"content":{"rendered":"<p class=\"wp-block-paragraph\">WordPress es una plataforma de gesti\u00f3n de contenidos muy vers\u00e1til que nos permite crear diferentes tipos de contenido para nuestro sitio web. Uno de los recursos m\u00e1s potentes son los Custom Post Types, los cuales nos permiten crear tipos de contenido personalizados para nuestra web sin necesidad de instalar un plugin. En este tutorial, aprenderemos c\u00f3mo crear Custom Post Types sin plugins en WordPress.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" src=\"http:\/\/racmanuel.dev\/wp-content\/uploads\/pexels-photo-3861972-1024x683.jpeg\" alt=\"female software engineer coding on computer\" class=\"wp-image-2295\" title=\"\"><figcaption class=\"wp-element-caption\">Photo by ThisIsEngineering on <a href=\"https:\/\/www.pexels.com\/photo\/female-software-engineer-coding-on-computer-3861972\/\" rel=\"nofollow noopener\" target=\"_blank\">Pexels.com<\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"paso-1-agregar-el-codigo-en-el-archivo-functions-php\">Paso 1: Agregar el c\u00f3digo en el archivo functions.php<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero que debemos hacer es agregar el c\u00f3digo necesario en el archivo <code>functions.php<\/code> de nuestro tema de WordPress. Abre el archivo <code>functions.php<\/code> y agrega el siguiente c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">function crear_custom_post_type() {\n\n  $labels = array(\n    'name' =&gt; 'Mis Custom Post Types',\n    'singular_name' =&gt; 'Mi Custom Post Type',\n    'menu_name' =&gt; 'Mis Custom Post Types',\n    'parent_item_colon' =&gt; 'Custom Post Type Padre:',\n    'all_items' =&gt; 'Todos los Custom Post Types',\n    'view_item' =&gt; 'Ver Custom Post Type',\n    'add_new_item' =&gt; 'Agregar Nuevo Custom Post Type',\n    'add_new' =&gt; 'Agregar Nuevo',\n    'edit_item' =&gt; 'Editar Custom Post Type',\n    'update_item' =&gt; 'Actualizar Custom Post Type',\n    'search_items' =&gt; 'Buscar Custom Post Type',\n    'not_found' =&gt; 'No se encontr\u00f3 ning\u00fan Custom Post Type',\n    'not_found_in_trash' =&gt; 'No se encontr\u00f3 ning\u00fan Custom Post Type en la papelera',\n  );\n\n  $args = array(\n    'label' =&gt; 'Mis Custom Post Types',\n    'description' =&gt; 'Custom Post Types personalizados para mi sitio web',\n    'labels' =&gt; $labels,\n    'supports' =&gt; array('title', 'editor', 'thumbnail', 'excerpt'),\n    'public' =&gt; true,\n    'has_archive' =&gt; true,\n    'menu_position' =&gt; 5,\n    'rewrite' =&gt; array('slug' =&gt; 'mis-custom-post-types'),\n    'show_in_rest' =&gt; true,\n  );\n\n  register_post_type('mis_custom_post_types', $args);\n\n}\n\nadd_action('init', 'crear_custom_post_type');<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este c\u00f3digo, estamos creando un Custom Post Type llamado &#8220;Mis Custom Post Types&#8221;. Los argumentos que se pasan en el segundo par\u00e1metro de la funci\u00f3n <code>register_post_type()<\/code> permiten personalizar la apariencia y el comportamiento del Custom Post Type. Algunos de los argumentos que utilizamos son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>label<\/code>: el nombre que se mostrar\u00e1 en la p\u00e1gina de edici\u00f3n de Custom Post Types.<\/li>\n\n\n\n<li><code>description<\/code>: una breve descripci\u00f3n del Custom Post Type.<\/li>\n\n\n\n<li><code>supports<\/code>: los tipos de campos que se mostrar\u00e1n en la p\u00e1gina de edici\u00f3n del Custom Post Type.<\/li>\n\n\n\n<li><code>public<\/code>: si se mostrar\u00e1 o no el Custom Post Type en el sitio web.<\/li>\n\n\n\n<li><code>has_archive<\/code>: si se crear\u00e1 o no un archivo para el Custom Post Type.<\/li>\n\n\n\n<li><code>rewrite<\/code>: el slug que se utilizar\u00e1 para las URLs de los Custom Post Types.<\/li>\n\n\n\n<li><code>show_in_rest<\/code>: si se habilitar\u00e1 o no el editor de bloques de Gutenberg para el Custom Post Type.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"paso-2-verificar-el-custom-post-type\">Paso 2: Verificar el Custom Post Type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que hemos agregado el c\u00f3digo en el archivo <code>functions.php<\/code>, podemos verificar si el Custom Post Type se ha creado correctamente. En el panel de administraci\u00f3n de WordPress, debemos ver una nueva entrada en el men\u00fa lateral llamada &#8220;Mis Custom Post Types&#8221;. Si hacemos clic en esta entrada, veremos la p\u00e1gina de edici\u00f3n de Custom Post Types, similar a la p\u00e1gina de edici\u00f3n de entradas o p\u00e1ginas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"paso-3-personalizar-el-custom-post-type\">Paso 3: Personalizar el Custom Post Type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que hemos creado el Custom Post Type, podemos personalizarlo seg\u00fan nuestras necesidades. Podemos agregar campos personalizados utilizando la funci\u00f3n <code>add_meta_box()<\/code>, crear taxonom\u00edas personalizadas utilizando la funci\u00f3n <code>register_taxonomy()<\/code> y personalizar la plantilla utilizando archivos de plantilla espec\u00edficos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, hemos aprendido c\u00f3mo crear Custom Post Types sin plugins en WordPress. Los Custom Post Types nos permiten crear tipos de contenido personalizados para nuestro sitio web y pueden ser muy \u00fatiles para diferentes prop\u00f3sitos, como eventos, testimonios, carteras y mucho m\u00e1s. Al utilizar el archivo <code>functions.php<\/code> de nuestro tema de WordPress, podemos crear y personalizar Custom Post Types sin necesidad de instalar un plugin adicional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es importante destacar que los Custom Post Types son una funcionalidad muy potente de WordPress, y pueden ser utilizados para crear una amplia variedad de contenidos en nuestro sitio web. La clave es personalizarlos seg\u00fan nuestras necesidades y asegurarnos de que la funcionalidad sea coherente con el resto de nuestro sitio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es importante tener en cuenta que la creaci\u00f3n de Custom Post Types puede ser una tarea compleja y requiere conocimientos de programaci\u00f3n en PHP y WordPress. Por lo tanto, si no est\u00e1 seguro de c\u00f3mo hacerlo, es posible que desee buscar la ayuda de un desarrollador de WordPress con experiencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, esperamos que este tutorial haya sido \u00fatil para aprender a crear Custom Post Types sin plugins en WordPress. \u00a1Aproveche esta herramienta y cree un sitio web personalizado y atractivo para sus visitantes!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"algunos-plugins-para-generar-custom-post-types\">Algunos plugins para Generar Custom Post Types<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existen varios plugins que permiten generar Custom Post Types de manera f\u00e1cil y r\u00e1pida en WordPress. A continuaci\u00f3n, te recomendamos algunos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><span style=\"color: var(--theme-palette-color-2, #25ff00);\" class=\"stk-highlight\"><a href=\"https:\/\/wordpress.org\/plugins\/custom-post-type-ui\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/custom-post-type-ui\/\" rel=\"nofollow noopener\" target=\"_blank\">Custom Post Type UI:<\/a><\/span> Es uno de los plugins m\u00e1s populares para crear Custom Post Types en WordPress. Con esta herramienta, puedes crear y administrar Custom Post Types y taxonom\u00edas personalizadas desde el panel de administraci\u00f3n de WordPress. <\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/toolset.com\/\" data-type=\"URL\" data-id=\"https:\/\/toolset.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Toolset Types:<\/a> Este plugin permite crear Custom Post Types, campos personalizados y taxonom\u00edas personalizadas sin necesidad de conocimientos de programaci\u00f3n. Tambi\u00e9n cuenta con una herramienta para personalizar las plantillas de los Custom Post Types.<\/li>\n\n\n\n<li><a href=\"Pods:https:\/\/wordpress.org\/plugins\/pods\/\" data-type=\"URL\" data-id=\"Pods:https:\/\/wordpress.org\/plugins\/pods\/\">Pods:<\/a> Es un plugin gratuito que permite crear Custom Post Types y campos personalizados en WordPress. Tambi\u00e9n es posible crear relaciones entre diferentes Custom Post Types.<\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.org\/plugins\/advanced-custom-fields\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/advanced-custom-fields\/\" rel=\"nofollow noopener\" target=\"_blank\">Advanced Custom Fields:<\/a> Aunque no es un plugin espec\u00edfico para crear Custom Post Types, es una herramienta muy \u00fatil para agregar campos personalizados a los Custom Post Types existentes. Con esta herramienta, puedes agregar campos de texto, imagen, galer\u00eda, fecha, selecci\u00f3n y mucho m\u00e1s.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">En general, estos plugins son muy \u00fatiles para crear Custom Post Types de manera f\u00e1cil y r\u00e1pida, especialmente si no se tienen conocimientos de programaci\u00f3n en WordPress. Sin embargo, si buscas una soluci\u00f3n m\u00e1s personalizada, es posible que desees crear tus propios Custom Post Types desde cero utilizando el archivo <code>functions.php<\/code> de tu tema de WordPress.<\/p>\n\n\n<style><\/style><style><\/style>\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading has-large-font-size\" id=\"necesitas-ayuda-con-un-proyecto-web\">Do you need help with a web project?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Do you need help with a web project? Don&#039;t hesitate to contact me. I develop complete and customized solutions with WordPress and PHP, using modern tools and processes, HTML, CSS, SCSS, PHP, JavaScript, Bootstrap, and more. Ready? Send me a message and let&#039;s talk about your web project!<\/p>\n\n\n<div class=\"wp-block-groundhogg-forms\">\n\t<div class=\"gh-form-wrapper\"><form method=\"post\" class=\"gh-form gh-form-v2\" target=\"_parent\" enctype=\"multipart\/form-data\" name=\"Formulario de Contacto\" id=\"gh-form-24\" data-id=\"24\" action=\"\"><div class=\"gh-form-fields\"><div class=\"gh-form-column col-1-of-2\"><label for=\"first_name\">Name <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><input type=\"text\" name=\"first_name\" id=\"first_name\" class=\"gh-input gh-first-name\" value=\"\" required><\/div><\/div><div class=\"gh-form-column col-1-of-2\"><label for=\"last_name\">Last name(s) <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><input type=\"text\" name=\"last_name\" id=\"last_name\" class=\"gh-input gh-last-name\" value=\"\" required><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"email\">Email <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><input type=\"email\" name=\"email\" id=\"email\" class=\"gh-input gh-email\" value=\"\" required><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"primary_phone\">Phone or WhatsApp <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><input type=\"tel\" name=\"primary_phone\" id=\"primary_phone\" class=\"gh-input\" value=\"\" required><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"nombre_de_tu_negocio_o_empresa\">Name of your Business or Company<\/label><div class=\"gh-form-input-field\"><input type=\"text\" name=\"nombre_de_tu_negocio_o_empresa\" id=\"nombre_de_tu_negocio_o_empresa\" class=\"gh-input\" value=\"\"\/><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"link_de_tu_pagina_web\">Link to your website<\/label><div class=\"gh-form-input-field\"><input type=\"url\" name=\"link_de_tu_pagina_web\" id=\"link_de_tu_pagina_web\" class=\"gh-input\" value=\"\" placeholder=\"If your business or company has a website, enter the link here.\"\/><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"question_type\">What kind of question do you have? <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><select name=\"question_type\" id=\"question_type\" class=\"gh-input\" required><option value=\"Cotizaci\u00f3n\">Price<\/option><option value=\"General\">General<\/option><option value=\"Soporte\">Medium<\/option><\/select><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><label for=\"message\">Ask <span class=\"required\">*<\/span><\/label><div class=\"gh-form-input-field\"><textarea name=\"message\" id=\"message\" class=\"gh-input\" rows=\"7\" placeholder=\"Your question or doubt...\" type=\"text\" required><\/textarea><\/div><\/div><div class=\"gh-form-column col-1-of-1\"><div class=\"consent gh-gdpr\" id=\"gdpr_consent\"><div ><label class=\"gh-checkbox-label\"><input type=\"checkbox\" name=\"data_processing_consent\" id=\"data-processing-consent\" class=\"\" value=\"yes\" required><span class=\"checkbox-label\">I agree to racmanuel.dev&#8217;s storage and processing of my personal data. <span class=\"required\">*<\/span><\/span><\/label><\/div><div ><label class=\"gh-checkbox-label\"><input type=\"checkbox\" name=\"marketing_consent\" id=\"marketing-consent\" class=\"\" value=\"yes\"\/><span class=\"checkbox-label\">I agree to receive marketing offers and updates from racmanuel.dev.<\/span><\/label><\/div><\/div><\/div><div class=\"gh-form-column col-1-of-3\"><button type=\"submit\" class=\"gh-submit gh-button primary\" value=\"\">Get in touch!<\/button><\/div><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form><\/div><\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>WordPress es una plataforma de gesti\u00f3n de contenidos muy vers\u00e1til que nos permite crear diferentes tipos de contenido para nuestro sitio web. Uno de los recursos m\u00e1s potentes son los Custom Post Types, los cuales nos permiten crear tipos de contenido personalizados para nuestra web sin necesidad de instalar un plugin. En este tutorial, aprenderemos c\u00f3mo crear Custom Post Types sin plugins en WordPress.<\/p>","protected":false},"author":1,"featured_media":2295,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","_glsr_average":0,"_glsr_ranking":0,"_glsr_reviews":0,"footnotes":""},"categories":[48],"tags":[42],"niveles":[],"class_list":["post-1943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales","tag-wordpress"],"blocksy_meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/comments?post=1943"}],"version-history":[{"count":3,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1943\/revisions"}],"predecessor-version":[{"id":2297,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1943\/revisions\/2297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/media\/2295"}],"wp:attachment":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/media?parent=1943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/categories?post=1943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/tags?post=1943"},{"taxonomy":"niveles","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/niveles?post=1943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}