Tipos de publicaciones de WordPress: una abstracción para las entidades
Cuando los programadores hablan de entidades, por lo general se refieren a un concepto o algo que tiene existencia dentro de un sistema. A veces es una clase, a veces es una biblioteca o dependencia, o puede ser algo así como los tipos de publicaciones de WordPress.
Si se piensa en WordPress como una base de aplicación (en lugar de un marco), es importante pensar en ciertas características de manera que puedan tratarse como entidades. En el ejemplo anterior, un tipo de publicación es solo eso.
Cuando se introdujeron los tipos de publicaciones personalizadas, nos dio una forma de introducir algo más que páginas y publicaciones en la aplicación. Ahora podemos implementar cualquier concepto, como un evento, y tratarlo como una entidad propia dentro del sistema.
Pero cuando todo está dicho y hecho, todo se guarda en la tabla de publicaciones. Y eso está bien porque el desarrollo de software tiene que ver con la abstracción. A medida que implementamos los tipos de publicaciones de WordPress, estamos implementando una abstracción además de la idea de las publicaciones.
Tipos de publicaciones de WordPress
En la última publicación, analicé el proceso de creación de un usuario que finalmente se asociará con alguna entidad en la aplicación de WordPress.
- Tal vez él/ella es el autor de una publicación,
- Tal vez sea el vendedor de un producto,
- Tal vez sea el narrador de una historia,
- O cualquier otra cosa que puedas imaginar.
Las posibilidades son infinitas. Pero antes de hablar sobre cómo crear una asociación entre las dos entidades, es decir, el usuario y el tipo de publicación de WordPress, debemos hablar sobre cómo implementar una entidad o un tipo de publicación personalizada mediante programación.
Hay mucha documentación sobre esto, y hay muchos tutoriales disponibles sobre esto, así que no voy a insistir en el punto. En cambio, voy a tratar de mantener esto lo más básico posible. Recuerde, el objetivo de toda esta serie es finalmente llegar a un punto en el que asociamos entidades a través de metadatos.
Pero antes de hacer eso, necesitamos crear las entidades. Por lo tanto, tenemos un usuario, así que hagámoslo.
Para nuestro ejemplo, digamos que el usuario que creamos en la publicación anterior, Meghan, es el autor de un libro. Y dentro de una instalación de WordPress administrada por otra persona, hay un tipo de publicación personalizado para libros, cada uno de los cuales tiene algunos atributos:
- título,
- descripción,
- fecha de publicación,
- ISBN,
- número de copias iniciales vendidas,
- donde se puede comprar,
- y así.
Puede agregar más o menos a su implementación. De hecho, tal vez esté en el negocio de la venta de libros electrónicos y la URL del libro para la compra sea uno de los atributos. Cualquiera que sea el caso, usted consigue la idea.
Dicho esto, podemos implementar un tipo de publicación personalizado simple para "libros" mediante programación.
Implementando un tipo de publicación
Y eso se parece a esto :
<?php
add_action( 'init', 'acme_create_book_post_type' );
/**
* Creates a new custom post type called 'Book' using the smallest number of arguments
* to prepare the post type.
*/
function acme_create_book_post_type() {
$args = array(
'labels' => array(
'name' => 'Books',
'singular_name' => 'Book',
),
'public' => true,
);
register_post_type( 'acme_book', $args );
}
Si lee la documentación sobre la creación de tipos de publicaciones personalizadas, no hay nada anormal en esto. Debería verse exactamente como lo esperarías.
En cuanto a dónde creas esto depende de la naturaleza de tu proyecto. Hay muchas personas que argumentarán que está en un complemento o que se integra en un tema. Este no es el lugar para debatir eso. Baste decir que, para mis propósitos, asumo que todo es parte del mismo complemento del tutorial anterior.
Además, no me estoy desviando de las taxonomías personalizadas, los comentarios o cualquier otro tipo de datos personalizados que se puedan asociar con un tipo de publicación personalizada.
A partir de ahí, observamos cómo se ve esto en el área de administración de WordPress y cómo se ve esto en la base de datos.
Mira detrás de la cortina
Primero, así es como se ve (o debería verse) en el área de administración de WordPress:
Y si observa la base de datos después de crear una entrada, verá algo como esto:
Obviamente, he limitado los registros devueltos en el front-end de la base de datos al filtrar los resultados para que la captura de pantalla sea más fácil de seguir.
en los libros
Y eso es todo, de verdad. Quiero decir, en el nivel más fundamental, así es como creas un tipo de publicación personalizada dentro de WordPress. Sé que no es nada nuevo, pero si pudiera presentar un caso un poco más sólido para una publicación como esta, incluiría los siguientes dos puntos.
1 Se trata de abstracciones
Si está buscando comenzar a crear aplicaciones web con WordPress, es importante dejar de pensar en términos tradicionales como publicaciones, páginas, comentarios y categorías, y comenzar a pensar en ellos como abstracciones más genéricas.
Entidades, como se mencionó anteriormente en el artículo. Una vez que lo haga, tendrá un cambio en el modelo mental que impulsará su capacidad para pensar e implementar una solución.
2 Se trata de relaciones
Aunque a menudo pensamos en las cosas en sus partes individuales, como publicaciones y páginas, sabemos que las publicaciones pueden tener comentarios, los comentarios pueden tener respuestas, las páginas pueden tener plantillas, etc.
Hay relaciones entre todas estas cosas individuales que son parte del sistema. Y cuando empiezas a pensar en las relaciones como algo que nos permite hacer más, empiezas a ver cuán poderoso puede ser algo. Es todo «el todo es mayor que la suma de sus partes".
Entonces, una vez que tenga entidades individuales en su lugar y una vez que comience a ver cómo se pueden relacionar entre sí, estará dando un paso adelante en la creación de algo que resuelva un problema un poco más complejo a partir de partes aparentemente simples.
Y ahí es donde nos dirigiremos a continuación.
¿Qué pasa con los metadatos?
Todo el propósito de esta serie es explicar cómo crear una asociación entre entidades, ¿verdad? Específicamente, buscamos crear una asociación entre un usuario y una publicación o, más específicamente, un autor y un libro.
WordPress proporciona la base para hacer esto y aquí es donde puede entrar en juego el poder de las tablas y ganchos adicionales. En la próxima publicación, hablaré sobre cómo crear esta asociación, las direcciones a las que pueden ir las asociaciones y cómo trabajar con estos datos si, por ejemplo, se elimina un usuario de la aplicación.
Publicaciones de la serie
- Asociación de metadatos de WordPress: cómo hacerlo
- Creación programática de usuarios de WordPress
- Tipos de publicaciones de WordPress: una abstracción para las entidades
- Asociación de Metadatos de WordPress: Entidades Relacionadas

