Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Creative Coding

Clase auxiliar sobre el tipo de entradas personalizadas

by
Read Time:10 minsLanguages:

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Actualmente, en muchos proyectos de WordPress utilizamos tipos de entradas personalizadas. El equipo de desarrollo de WordPress creó algunos prácticos métodos para integrarlos en tus proyectos. Pero, con frecuencia, cuando usas tipos de entradas personalizadas, taxonomías y meta boxes, es bastante probable que te repitas. Por este motivo vamos a utilizar el poder de estas funciones de WordPress para construir una clase más potente, que podemos utilizar para registrar rápidamente tipos de entradas, taxonomías y meta boxes.


Invocar nuestra clase

Cuando llamamos a nuestra clase, así es como se hace.


Paso 1 La clase, las propiedades y los métodos

Comenzamos con la creación de la clase, las propiedades principales, el constructor y los métodos. En este tutorial los llenaremos con nuestra lógica de programación.


Paso 2 El Constructor

Dentro del constructor creamos algunas variables importantes, que se utilizan dentro de toda la clase. También invocamos add_action para registrar el tipo de entrada y escuchamos cuándo se guarda el tipo de entrada, para poder guardar sus metadatos. Si existe el tipo de entrada, no se invoca a add_action, pero se establece $post_type_name, por lo que podemos añadir taxonomías y meta boxes.


Paso 3 Registrar el tipo de entrada

Dentro del método register_post_type, al que llama add_action en el constructor, primero determinamos el nombre (en mayúsculas) y el plural. Con este nombre y plural construimos nuestras etiquetas para el tipo de entrada y las sobreescribimos (y las fusionamos) con las etiquetas dadas por la variable $this->post_type_labels. Luego creamos nuestros argumentos siguiendo el mismo principio.


Paso 3 Añadir algunas taxonomías

Primero comprobamos si el parámetro $name está vacío. Cuando lo está, no hacemos nada. Cuando no es así, creamos tres variables en las que almacenamos la información para la taxonomía: $taxonomy_name, $taxonomy_labels y $taxonomy_args.

Después de hacer las primeras comprobaciones y después de establecer algunas variables, vamos a registrar el tipo de entrada. Pero primero comprobamos si la taxonomía ya existe.

Si la taxonomía no existe, la registramos. Usamos add_action, pero no de la manera habitual. Normalmente, el segundo parámetro de add_action es el nombre de una función, pero como usamos diferentes parámetros cada vez, vamos a pasar una función sin nombre (Nota: esta característica requiere PHP 5.3+) y usaremos la función use(). Con la función use() podemos pasar variables a la función sin nombre. Esta vez tenemos que pasar $taxonomy_name, $post_type_name y $taxonomy_args para registrar la taxonomía.

Cuando la taxonomía no existe, solo la adjuntamos a nuestro tipo de entrada. Al igual que antes, usamos una función sin nombre y la función use(). Esta vez sólo tenemos que pasar $taxonomy_name y $post_type_name.


Paso 4 Meta boxes

Para registrar meta boxes, necesitamos el nombre del tipo de entrada, así que primero lo determinamos. Después de eso necesitamos algunas variables para el propio meta box y hacemos que los meta campos personalizados sean globales, para que podamos acceder a ellos con el gancho de guardado. Aquí no cubriremos demasiados detalles, porque Tammy Hart ya creó un tutorial muy útil sobre meta boxes reutilizables.

Cuando establecemos las variables y los globales, registramos el meta box con add_action. Como antes, usamos una función sin nombre. Esta vez necesitamos $box_id, $box_title, $post_type_name, $box_context, $box_priority y $fields.


Paso 5 Guardar los metadatos de la entrada

Guarda todos los metadatos de la entrada. Los recorremos en bucle, utilizando el global $custom_fields. Esto es también un visión rápida, consulta el tutorial de Tammy Hart sobre meta boxes reutilizables.


Paso 6 Optimizar

Como puedes ver, utilizamos strtolower( str_replace( ' ', '_', $string ) ) y ucwords( str_replace( '_', ' ', $string ) ) varias veces. La razón de crear esta clase es que no nos repetimos, así que tampoco queremos hacer eso en esta parte. Por eso creamos algunos métodos auxiliares. De esta manera podemos hacer esto: $name = self::beautify( $string ); en lugar de $name = strtolower( str_replace( ' ', '_', $title ) );

Otro punto son las formas plurales que creamos. Simplemente los creamos añadiendo una 's' a la palabra. Pero, ¿qué sucede cuando la palabra termina con una 'y'? Por esta razón creamos un método auxiliar para determinar la forma plural de una palabra. Ahora podemos hacer fácilmente esto: $plural - self::pluralize( $string ) y se determinará la forma plural de nuestra palabra.


Resumen

Ahora ya hemos terminado. Ahora puedes utilizar esta clase para registrar fácilmente tipos de entradas, taxonomías y meta boxes. Si tienes alguna sugerencia o pregunta, deja un comentario, para que podamos hablar de ello. ¡Espero verte la próxima vez!

Además, me gustaría darle algo de crédito a Jeffrey Way. Usé su clase como inspiración para la mía y para este tutorial. También, me gustaría dar un poco de crédito a Tammy Hart, por la creación del tutorial sobre los meta boxes reutilizables. Echa un vistazo a su trabajo.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.