{"id":1657,"date":"2022-12-16T10:00:00","date_gmt":"2022-12-16T16:00:00","guid":{"rendered":"http:\/\/racmanuel.dev\/?p=1657"},"modified":"2023-03-24T09:57:26","modified_gmt":"2023-03-24T15:57:26","slug":"como-hacer-un-plugin-para-wordpress","status":"publish","type":"post","link":"https:\/\/racmanuel.dev\/en\/como-hacer-un-plugin-para-wordpress\/","title":{"rendered":"How to make a WordPress plugin?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Crear un plugin para WordPress es muy sencillo, m\u00e1s de lo que puedas imaginar, pero antes debemos conocer algunos conceptos antes de desarrollar un plugin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"que-es-un-plugin\"><span style=\"color: var(--theme-palette-color-2, #25ff00);\" class=\"stk-highlight\">\u00bfQu\u00e9 es un Plugin?<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un plugin es un paquete de c\u00f3digo que ampl\u00eda la funcionalidad central de WordPress. Los plugins de WordPress se componen de c\u00f3digo PHP y pueden incluir otros archivos como im\u00e1genes, CSS y JavaScript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al crear un plugin estamos extendiendo WordPress, es decir, construyendo funcionalidad adicional sobre lo que WordPress ya ofrece.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O, utilizando los tipos de publicaciones personalizadas de WordPress, podemos escribir un plugin que cree un sistema de tickets de soporte con todas las funciones con notificaciones por correo electr\u00f3nico, estados de tickets personalizados y un portal orientado al cliente. El \u00fanico limite es la imaginaci\u00f3n, \u00a1Las posibilidades son infinitas!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La mayor\u00eda de los plugins de WordPress se componen de muchos archivos, pero un plugin realmente s\u00f3lo necesita un archivo principal escrito en PHP con formato espec\u00edfico en el encabezado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez aclarado este concepto podemos empezar a hacer nuestro primer plugin de WordPress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"como-hacer-un-plugin-para-wordpress\"><span style=\"color: var(--theme-palette-color-2, #25ff00);\" class=\"stk-highlight\">\u00bfComo hacer un plugin para WordPress?<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo de plugin, que recomiendo hacer a todo usuario, es un plugin que sustituya al archivo functions.php que normalmente esta la carpeta del tema que tengas activo. A este, recomiendo a\u00f1adirle funciones y acciones, es m\u00e1s, hay funciones que tienen m\u00e1s sentido como plugin que como a\u00f1adido a un tema, as\u00ed que como tu primer plugin no dudes en hacer el sustituto del functions.php. Bueno, pero despu\u00e9s de mencionarte esto te explicare el proceso para crear y empezar a trabajar con un plugin es tan simple como esto:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Crear el fichero del plugin con la cabecera est\u00e1ndar para que WordPress lo reconozca como tal y se pueda instalar y activar.<\/li>\n\n\n\n<li>Agrega funciones, acciones y filtros.<\/li>\n\n\n\n<li>Comprime en un ZIP el archivo y s\u00fabelo desde el instalador de plugins o mediante FTP.<\/li>\n\n\n\n<li>Act\u00edvalo como cualquier otro plugin.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La cabecera est\u00e1ndar de un plugin WordPress sigue unas reglas muy sencillas, como se aprecia en el ejemplo:<\/p>\n\n\n\n<pre title=\"\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php line-numbers\">&lt;?php\n\/*\n * Plugin Name: Mi Plugin de Funciones\n * Plugin URI: http:\/\/racmanuel.dev\n * Description: Plugin para liberar de funciones el archivo &lt;code&gt;functions.php&lt;\/code&gt;.\n * Version: 1.0\n * Author: racmanuel\n * Author URI: http:\/\/racmanuel.dev\n * License: GPLv2 o posterior\n *\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e1sicamente estas l\u00edneas de c\u00f3digo indican cual es nombre del plugin, la url del plugin, autor, descripci\u00f3n del plugin y la licencia la cual posee.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo siguiente es a\u00f1adir, debajo de la cabecera que anteriormente hemos creado, aquellas funciones WordPress o c\u00f3digo PHP que se ejecutar\u00e1n al activarlo. l\u00f3gicamente, si no sabes programar en PHP, hasta aqu\u00ed llegar\u00eda el tutorial. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el siguiente ejemplo tienes ya a\u00f1adidas unas cuantas funciones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\n\/*\n * Plugin Name: Ejemplo de Funciones en PHP\n * Plugin URI: http:\/\/racmanuel.dev\n * Version: 1.0\n * Author: Manuel Ramirez Coronel\n * Author URI: http:\/\/racmanuel.dev\n * License: GPLv2 o posterior\n *\/ \n\nadd_action(\"login_head\", \"custom_login_head\");\n\nfunction custom_login_head() \n{\n    echo \"&lt;style&gt;body.login #login h1 a { background: url('\".get_bloginfo('template_url').\"\/images\/mi_logo.png') no-repeat scroll center top transparent; height: 135px; width: 135px; } &lt;\/style&gt;\";\n}\n\n\/\/ personalizar URL en el logo de la pantalla de acceso a WordPress\nadd_action( 'login_headerurl', 'custom_login_url' );\n\nfunction custom_login_url() {\n    return 'http:\/\/racmanuel.dev';\n}\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfCu\u00e1les son los pasos finales?, guardar los cambios y darle un nombre llamativo a tu plugin. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez lo subas a tu instalaci\u00f3n de WordPress, si no has metido mal ning\u00fan c\u00f3digo, podr\u00e1s activarlo como cualquier otro y disfrutar de sus maravillas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"130\" src=\"http:\/\/racmanuel.dev\/wp-content\/uploads\/image-62-1024x130.png\" alt=\"\" class=\"wp-image-1700\" title=\"\" srcset=\"https:\/\/racmanuel.dev\/wp-content\/uploads\/image-62-1024x130.png 1024w, https:\/\/racmanuel.dev\/wp-content\/uploads\/image-62-600x76.png 600w, https:\/\/racmanuel.dev\/wp-content\/uploads\/image-62-300x38.png 300w, https:\/\/racmanuel.dev\/wp-content\/uploads\/image-62-768x97.png 768w, https:\/\/racmanuel.dev\/wp-content\/uploads\/image-62.png 1095w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Plugin listo para activar.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\"><span style=\"color: var(--theme-palette-color-2, #25ff00);\" class=\"stk-highlight\">Conclusi\u00f3n<\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los plugins en WordPress son paquetes de c\u00f3digo que a nosotros lo desarrolladores nos permiten ampliar la funcionalidad central de WordPress. Los plugins de WordPress se componen de c\u00f3digo PHP y pueden incluir otros activos como im\u00e1genes, CSS y JavaScript. Al crear tu propio plugin estamos&nbsp;<em>extendiendo<\/em>&nbsp;WordPress, es decir, construyendo funcionalidad adicional sobre lo que WordPress ya ofrece. \u00a1Las posibilidades&nbsp;son&nbsp;<em>infinitas!<\/em> el \u00fanico limite es tu imaginaci\u00f3n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Un plugin es un paquete de c\u00f3digo que ampl\u00eda la funcionalidad central de WordPress. Los plugin de WordPress se componen de c\u00f3digo PHP y pueden incluir otros archivos como im\u00e1genes, CSS y JavaScript.<\/p>\n<p>Al crear un plugin estamos extendiendo WordPress, es decir, construyendo funcionalidad adicional sobre lo que WordPress ya ofrece.<\/p>","protected":false},"author":1,"featured_media":1713,"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":[],"niveles":[],"class_list":["post-1657","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"acf":[],"_links":{"self":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1657","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=1657"}],"version-history":[{"count":8,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1657\/revisions"}],"predecessor-version":[{"id":1714,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/posts\/1657\/revisions\/1714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/media\/1713"}],"wp:attachment":[{"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/media?parent=1657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/categories?post=1657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/tags?post=1657"},{"taxonomy":"niveles","embeddable":true,"href":"https:\/\/racmanuel.dev\/en\/wp-json\/wp\/v2\/niveles?post=1657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}