Cómo construir tu propio complemento de WordPress

Publicado: 2016-07-13

Puede parecer una gran tarea crear un complemento de WordPress. En algunos casos, esto es cierto: algunos complementos pueden ser increíblemente complejos. Pero dependiendo de la funcionalidad que esté buscando agregar, muchas son en realidad bastante simples de construir. La creación de un complemento se puede hacer rápidamente con una comprensión básica de cómo funciona todo.

¿A dónde van los complementos?

Estructura de carpetas de WordPress

Antes de que comience el desarrollo, es bueno saber dónde pertenecen los complementos. Echemos un vistazo a la estructura de carpetas de WordPress en los directorios de aplicaciones básicas. Dentro de la carpeta wp-content , verá un directorio de complementos. Aquí es donde vivirán todos sus complementos individuales.

Los complementos en esta carpeta pueden ser archivos individuales o en subdirectorios. Los complementos más pequeños generalmente solo requieren un único archivo .php. Los complementos complejos pueden tener varios tipos de archivos (HTML, CSS y JavaScript son todas posibilidades). La creación de un subdirectorio es útil para albergar los distintos archivos junto con las funciones .php del complemento.

cómo-construir-wordpress-plugin-plugin-file-path

Acciones y filtros

Antes de que comience la creación del complemento, es bueno conocer algunos conceptos básicos para comenzar. Cuando comienza a codificar sus propios complementos, un buen lugar para comenzar es aprender cómo funcionan las acciones y los filtros. Conocer los conceptos básicos será útil y, si tiene más preguntas al respecto, el Codex de WordPress es un gran recurso.

Antes del desarrollo del complemento

La metainformación es increíblemente importante y también es la información que le dice a WordPress los detalles sobre el complemento. Los complementos tienen opciones para instalarse, eliminarse, activarse y desactivarse. Técnicamente, todo lo que necesita es el nombre del complemento de WordPress para establecer su archivo como un complemento. Sin embargo, es una buena práctica proporcionar la otra información, ya que será útil para usted y sus usuarios.

<?php

/**

* Plugin Name: Example Plugin

* Plugin URI: http://mysite.com/

* Description: A brief description about your plugin.

* Version: 1.0 (or whatever current version your plugin is on)

* Author: Plugin Author's Name

* Author URI: Author's website

* License: A "Slug" license name e.g. GPL12

*/

Un complemento muy simple

Comenzar poco a poco es una buena manera de facilitar la creación de complementos. Vamos a crear un ejemplo muy simple. Las acciones y los filtros hacen que las cosas sucedan, así que agreguemos una línea de texto después de todas las publicaciones para probar las cosas.

Siempre es bueno trabajar en un entorno de desarrollo, y esto es especialmente importante cuando experimentas con complementos.

Primero, cree un nuevo archivo y asegúrese de que esté en el lugar correcto. Copie y pegue este código en su archivo de complemento principal y guárdelo. Esto se pega después de la metainformación.

add_action( 'the_content', 'test_example_text' );

function test_example_text ( $content ) {
    return $content .= '<p>This is my first plugin!</p>';
}

Este es un ejemplo de un gancho trabajando duro. Al conectarse a la acción the_content , esto funciona cuando WordPress muestra el contenido de la publicación. WordPress llama a la función test_example_text que se define debajo de la add_action call .

Ver el complemento en acción

Probablemente haya hecho esto antes, pero cuando inicie sesión en el administrador de WordPress, verá la opción de complemento a la izquierda. Aparece nuestro complemento, y ahora debe activarse. Una vez activado, aparece al final de la publicación.

cómo-construir-wordpress-plugin-plugin-listing

cómo-construir-wordpress-plugin-first-plugin

Un complemento más complejo

Entonces, este ejemplo demuestra los conceptos básicos de cómo funcionan los complementos, pero ¿qué sucede si desea hacer algo un poco más útil? Los tipos de publicaciones personalizadas se usan con bastante frecuencia en el diseño de sitios personalizados, así que comencemos con eso. Hay complementos existentes que puede usar, pero crear uno desde cero es una buena manera de facilitar el desarrollo de complementos.

¿Qué es el tipo de publicación personalizada en WordPress?

Las páginas y las publicaciones son los tipos de contenido más populares en WordPress, pero ¿qué pasa si quieres algo más específico? Las páginas y las publicaciones pueden ser demasiado generales en algunas circunstancias, por lo que un tipo de publicación personalizada se vuelve útil. Un buen ejemplo es un tipo de cartera de publicación personalizada. La idea es crear una publicación regular con un valor de tipo de publicación diferente adjunto.

Cómo crear un sitio de cartera en WordPress

Tener una página de cartera en un sitio web se puede usar para muchas cosas. Por definición, es algo que se utiliza para guardar materiales como papeles, mapas, dibujos, fotos, etc. Una cartera en términos financieros ref...

Puedes llamar a tus tipos de publicaciones personalizadas como quieras. Por ejemplo, si ejecuta un sitio de comida, podría crear un tipo de publicación de receta útil. Este tipo de publicación puede tener diferentes campos personalizados con su propia estructura de categoría personalizada.

Creación de tipos de publicaciones personalizadas

Lo primero que debe hacer es crear el tipo de publicación personalizada. Usando la misma estructura de archivos de arriba, agreguemos nuestra carpeta y el archivo .php. Suponiendo que se haya creado la metainformación, agregaremos nuestra funcionalidad después del metabloque.

Vamos a crear un complemento para un tipo de publicación personalizada llamado "Recetas" para demostrar los conceptos básicos de la creación de un complemento más complejo.

La versión básica

Si echa un vistazo al fragmento a continuación, es bastante simple al principio. Veremos un tipo de publicación personalizada en el menú de la izquierda para asegurarnos de que esto funcione. El register_post_type() se usa en una función, que se conecta a la acción init . Hay dos argumentos que son el tipo de publicación personalizada y una matriz de argumentos.

function recipe_custom_post_type() {
	register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );

cómo-construir-wordpress-plugin-post-tipo-personalizado-01

La versión avanzada

Esta versión básica del complemento realmente funcionará, sin embargo, se necesita más funcionalidad para que sea realmente maravilloso. Por ejemplo, las etiquetas todavía dicen "Agregar nueva publicación". Queremos que esto sea más específico para la receta; después de todo, es por eso que no estamos usando solo una publicación simple. Las personalizaciones se pueden hacer usando la propiedad de las etiquetas.

cómo-construir-wordpress-plugin-agregar-nueva-publicación

Ahora, eliminemos lo que acabamos de hacer y usemos esto en su lugar:

add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );

function recipe_custom_post_type() {
	$labels = array(
		'name'               => 'Recipes',
		'singular_name'      => 'Recipe',
		'menu_name'          => 'Recipe',
		'name_admin_bar'     => 'Recipe',
		'add_new'            => 'Add New',
		'add_new_item'       => 'Add New Recipe',
		'new_item'           => 'New Recipe',
		'edit_item'          => 'Edit Recipe',
		'view_item'          => 'View Recipe',
		'all_items'          => 'All Recipes',
		'search_items'       => 'Search Recipes',
		'parent_item_colon'  => 'Parent Recipes:',
		'not_found'          => 'No recipes found.',
		'not_found_in_trash' => 'No recipes found in Trash.'
	);

	$args = array( 
		'public'      => true, 
		'labels'      => $labels,
		'rewrite'		=> array( 'slug' => 'recipe' ),
		'has_archive'   => true,
		'menu_position' => 20,
		'menu_icon'     => 'dashicons-carrot',
		'taxonomies'		=> array( 'post_tag', 'category' ),
		'supports'      => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
	);
    	register_post_type( 'recipe', $args );
}

function recipes_messages( $messages ) {
	$post = get_post();

	$messages['recipe'] = array(
		0  => '',
		1  => 'Recipe updated.',
		2  => 'Custom field updated.',
		3  => 'Custom field deleted.',
		4  => 'Recipe updated.',
		5  => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
		6  => 'Recipe published.',
		7  => 'Recipe saved.',
		8  => 'Recipe submitted.',
		9  => sprintf(
			'Recipe scheduled for: <strong>%1$s</strong>.',
			date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
		),
		10 => 'Recipe draft updated.'
	);

	return $messages;
}


cómo-construir-wordpress-plugin-agregar-nueva-receta

¿Ves cómo el texto en la parte superior ahora dice "Agregar nueva receta"? Hicimos que eso sucediera al personalizar el "agregar nuevo elemento" con el texto deseado.

cómo-construir-wordpress-plugin-ui-elements

cómo-construir-wordpress-plugin-reciep-posts

Están sucediendo muchas cosas aquí y las cosas se vuelven bastante detalladas cuando se trabaja con argumentos. Una que es visualmente obvia es la propiedad supports . Aquí hemos declarado que se incluirán un título, editor, autor, miniatura, extracto, campos personalizados y comentarios. Estos se muestran en la interfaz de usuario del administrador y también en algunas partes de la interfaz. La propiedad de taxonomías le permite asignar taxonomías personalizadas al tipo de publicación personalizada.

cómo-construir-wordpress-plugin-ui-nuevo

Publicar mensajes de interacción de tipo

Cada vez que guarda, elimina, busca, etc., recibe un mensaje predeterminado. En nuestra función recipes_messages , hay una lista de estos mensajes. Definir la matriz para el tipo de publicación personalizada con los mensajes apropiados garantizará que las cosas se lean de la manera que desea para el tipo de publicación personalizada. Las cosas se ven muy específicas de la receta con la redacción, por lo que va bien con el tipo de publicación personalizada.

cómo-construir-wordpress-plugin-receta-texto

Una vez que haya completado su complemento, puede publicarlo en el Directorio de complementos de WordPress para que otros también puedan descargarlo. Si este es el caso, incluir un readme.txt es útil para aquellos que buscan un complemento como el suyo. Básicamente, este archivo incluirá su nombre y lo que hace el complemento, pero también podría incluir detalles sobre cada revisión y detalles específicos sobre las actualizaciones.

Como puede ver, los complementos pueden ser muy simples o complejos. Crear un complemento no es tan complicado como puede parecer a primera vista y es un buen hábito para desarrollar sitios de WordPress. Permiten una fácil organización y la capacidad de reutilización en múltiples sitios, lo que hace que su desarrollo de WordPress sea más eficiente.

cómo-construir-wordpress-plugin-ebook-cta