{"id":5827,"date":"2013-02-22T20:34:19","date_gmt":"2013-02-22T20:34:19","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=5827"},"modified":"2014-12-24T10:34:03","modified_gmt":"2014-12-24T10:34:03","slug":"anadir-campos-extras-a-las-entradas-de-wordpress","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/","title":{"rendered":"A\u00f1adir campos extras a las entradas de WordPress"},"content":{"rendered":"<p>Una caracter\u00edstica interesante que trae las \u00faltimas versiones de WordPress es la posibilidad de <strong>a\u00f1adir campos extras o campos personalizados a las entradas de WordPress (custom fields)<\/strong>.<\/p>\n<p>En este art\u00edculo vamos a ver como a\u00f1adir un nuevo campo que aparecer\u00e1 en la administraci\u00f3n de las entradas y visible en la Web de cara al usuario donde lo situemos en la plantilla.<\/p>\n<p>En el ejemplo que vamos a ilustrar vamos a a\u00f1adir un campo extra para a\u00f1adir un precio a los objetos o productos que ser\u00e1n entradas. En el archivo functions.php de la plantilla que estamos utlizando a\u00f1adiremos las siguientes declaraciones:<\/p>\n<pre>add_action('admin_menu', 'custom_fields_price');\r\nfunction custom_fields_price() {\r\n\u00a0\u00a0\u00a0 add_meta_box('price','Precio del Objeto','fn_price','post','normal','high');\r\n}\r\n\r\nfunction fn_price() {\r\n\u00a0\u00a0\u00a0 global $wpdb, $post;\r\n\u00a0\u00a0\u00a0 $value\u00a0 = get_post_meta($post-&gt;ID, price, true);\r\n\u00a0\u00a0\u00a0 echo '&lt;label for=\"image_es\"&gt;Precio&lt;\/label&gt;\r\n\u00a0\u00a0\u00a0 &lt;input type=\"text\" name=\"price\" id=\"price\" value=\"'.htmlspecialchars($value).'\" style=\"width: 100px;\" \/&gt; &amp;euro;';\r\n}<\/pre>\n<p>Obteniendo como resultado en la administraci\u00f3n de las entradas un nuevo campo extra visualiz\u00e1ndose de la siguiente forma por debajo de la descripci\u00f3n.<\/p>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/field.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5865\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/field.png\" alt=\"field\" width=\"883\" height=\"85\" srcset=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/field.png 883w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2013\/02\/field-300x28.png 300w\" sizes=\"auto, (max-width: 883px) 100vw, 883px\" \/><\/a><br \/>\nPara conseguir que los datos que se introduzcan en este campo se guarden en la base de datos para el post en cuesti\u00f3n deberemos a\u00f1adir tambi\u00e9n en el archivo functions.php la siguiente declaraci\u00f3n:<\/p>\n<pre>add_action('publish_post', 'save_price');\r\nfunction save_price() {\r\n\u00a0\u00a0 global $wpdb, $post;\r\n\u00a0\u00a0\u00a0 if (!$post_id) $post_id = $_POST['post_ID'];\r\n\u00a0\u00a0\u00a0 if (!$post_id) return $post;\r\n\u00a0\u00a0\u00a0 $price= $_POST['price'];\r\n\u00a0\u00a0\u00a0 update_post_meta($post_id, 'price', $price);\r\n}<\/pre>\n<p>De esta manera, cuando se pulse en el bot\u00f3n de publicar o actualizar se proceder\u00e1 tambi\u00e9n a guardar los datos que se hayan introducido en este campo.<\/p>\n<p>Ahora solo faltar\u00e1 ver donde queremos mostrar el precio, posiblemente lo queramos mostrar en los listados de las entradas o en la entrada propia. Para a\u00f1adirlo en la entrada deberemos editar el archivo single.php y a\u00f1adir all\u00ed donde queramos visualizar el precio el siguiente c\u00f3digo:<\/p>\n<pre>&lt;?php \r\n$metas = get_post_meta($post-&gt;ID, 'price');  \r\nif (isset($metas[0])) echo '&lt;h1&gt;Precio: '.$metas[0].'&lt;\/h1&gt;'; \r\n?&gt;<\/pre>\n<p>Siguiendo este mismo procedimiento podemos a\u00f1adir tantos campos como queramos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una caracter\u00edstica interesante que trae las \u00faltimas versiones de WordPress es la posibilidad de a\u00f1adir campos extras o campos personalizados a las entradas de WordPress (custom fields). En este art\u00edculo vamos a ver como a\u00f1adir un nuevo campo que aparecer\u00e1 en la administraci\u00f3n de las entradas y visible en la Web de cara al usuario [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5354,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-5827","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Una caracter\u00edstica interesante que trae las \u00faltimas versiones de WordPress es la posibilidad de a\u00f1adir campos extras o campos personalizados a las entradas de WordPress (custom fields). En este art\u00edculo vamos a ver como a\u00f1adir un nuevo campo que aparecer\u00e1 en la administraci\u00f3n de las entradas y visible en la Web de cara al usuario [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2013-02-22T20:34:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-12-24T10:34:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"320\" \/>\n\t<meta property=\"og:image:height\" content=\"320\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/\",\"name\":\"A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png\",\"datePublished\":\"2013-02-22T20:34:19+00:00\",\"dateModified\":\"2014-12-24T10:34:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png\",\"width\":320,\"height\":320},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A\u00f1adir campos extras a las entradas de WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog","og_description":"Una caracter\u00edstica interesante que trae las \u00faltimas versiones de WordPress es la posibilidad de a\u00f1adir campos extras o campos personalizados a las entradas de WordPress (custom fields). En este art\u00edculo vamos a ver como a\u00f1adir un nuevo campo que aparecer\u00e1 en la administraci\u00f3n de las entradas y visible en la Web de cara al usuario [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2013-02-22T20:34:19+00:00","article_modified_time":"2014-12-24T10:34:03+00:00","og_image":[{"width":320,"height":320,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/","url":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/","name":"A\u00f1adir campos extras a las entradas de Wordpress - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png","datePublished":"2013-02-22T20:34:19+00:00","dateModified":"2014-12-24T10:34:03+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/wordpress1.png","width":320,"height":320},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/anadir-campos-extras-a-las-entradas-de-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A\u00f1adir campos extras a las entradas de WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/5827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=5827"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/5827\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/5354"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=5827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=5827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=5827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}