Debate de tipos de publicaciones personalizadas de WordPress

Como muchos de ustedes saben, la semana pasada Syed Balkhi asistió a WordCamp Raleigh 2012. Durante el evento, uno de sus tweets generó un gran debate. En este artículo, nuestro fundador, Syed Balkhi, debatirá si los tipos de publicaciones personalizadas de WordPress pertenecen al archivo functions.php o a los complementos. A continuación se muestra un tweet que inició este debate:

Después del tweet, muchas personas de renombre en la comunidad de WordPress intervinieron. Puedes ver el conversación completa aquí. Curtis McHale dio un paso más y elaboró ​​el tema en su nueva entrada de blog.

La conversación de Twitter trajo algunos puntos importantes.

Resumen de Argumentos

Argumento de complementos: El usuario siempre tendrá los datos aunque cambie de tema. Puede que no se vea tan bonito, pero se quedará allí.

Argumento de funciones.php: Los datos sin diseño serían irrelevantes. Confundirá aún más a los usuarios.

¿Con qué lado estás más de acuerdo? Claramente, ambos lados tienen sus problemas, pero ¿cuál es el menor de los dos males?

Esta es la razón por la que creemos que los tipos de publicaciones personalizadas deberían SIEMPRE vive en un complemento específico del sitio o en un complemento separado por completo.

Datos de larga vida

Los tipos de publicaciones personalizadas son datos. En la mayoría de los casos, sus datos sobrevivirán al diseño actual. Habiendo cambiado nuestros temas varias veces, entendemos esa declaración claramente. Las publicaciones, las páginas, los enlaces, los archivos adjuntos y las revisiones son todos los tipos de publicaciones que vienen integrados con WordPress. Además de eso, tenemos tipos de publicaciones como Libros, Testimonios, Ofertas, etc. Ahora, ¿te imaginas si cambiamos un tema y todo esto desaparece? Seguramente, no nos gustaría que eso sucediera.

Tener desarrolladores en nuestro equipo, esto no debería importar mucho. Teniendo en cuenta que todos nuestros temas están diseñados a medida por nuestro equipo, ¿qué diferencia hace realmente? El secreto está en dos palabras: tiempo y centralización. Mientras tengamos todos los datos necesarios, todo lo que tendríamos que hacer en el futuro es cambiar el estilo. No tendremos que preocuparnos de copiar y pegar las funciones de un archivo a otro cada vez. ¿Qué sucede si desea replicar la funcionalidad? Simplemente tome el complemento y colóquelo en su nuevo sitio. Cambia el estilo y listo.

Reglas y Estándares

Cuando usa la palabra SIEMPRE como lo hicimos en nuestro tweet, puede significar tanto regla como estándares. Tanto las reglas como los estándares están hechos para la mayoría. Siempre habrá escenarios de casos especiales en los que se tuercen las reglas y se rompen los estándares, pero eso no significa que debamos deshacernos de los estándares por completo.

Hay toneladas de tipos de publicaciones genéricas que en su mayoría requieren el mismo conjunto de metacampos adicionales. Algunos ejemplos que me vienen a la mente serían: Citas, Libros, Recetas, Testimonios, Portafolio, etc.

Teniendo en cuenta la gran cantidad de temas de fotografía y portafolio que están disponibles en el mercado libre y comercial, casi no tiene sentido hacer que el usuario vuelva a ingresar toda su información de tipo de publicación personalizada cada vez que cambia un tema. Echemos un vistazo a un caso de ejemplo:

Fotógrafo – El usuario configura un WordPress que tiene una funcionalidad de blog (CPT predeterminado de “publicación”). Quiere agregar un portafolio de su trabajo (requiere un CPT de Portafolio). Quiere mostrar testimonios de clientes (requiere un CPT Testimonial). Toda esta información seguramente vivirá más allá del diseño de un tema. Un año después, el usuario quiere cambiar el aspecto de su sitio y actualizarlo. Encuentra un nuevo tema que tiene todas las funciones similares. En el momento en que cambia de tema, BOOM. Todos los datos anteriores que ingresó han desaparecido. Hay un menú llamado Portafolio y un menú llamado Testimonios, sin embargo, ninguno de los datos está allí. El usuario piensa «SANTA MIERDA, perdí todo mi contenido». Crea una nueva pregunta de soporte en el foro. Envía correos electrónicos a sitios como WPBeginner, etc. Si no reciben una buena respuesta, tendrán que volver a ingresar todos los datos. Esta es una experiencia de usuario horrible.

Entonces, ¿cómo resolvemos este problema?

¿Solución posible?

Creamos una nueva base estándar. justin tadlock Ya comencé a trabajar en este problema hace un tiempo creando un complemento de cartera base. ¿Será la solución perfecta para todos? NO, pero será para la mayoría.

Como Justin pregunta en su publicación, qué campos estándar deben incluirse en el complemento de la cartera (refiriéndose a la publicación meta). Este tipo de conversación debe ocurrir entre los desarrolladores que están creando funcionalidades similares en sus temas. ¿Por qué copiar y pegar lo mismo una y otra vez de un tema a otro cuando se puede hacer a través de un complemento? Una vez que se convierta en un estándar, otros autores de temas comenzarán a adaptarse a él.

Por ejemplo, estamos viendo un aumento en el soporte de estilo para Gravity Forms en marcos de temas de WordPress como Génesis y otros. ¿Por qué? Porque entienden que sus usuarios lo están usando.

Hay algunos temas robustos de WordPress que vienen cargados con funcionalidades que creemos que deberían ser complementos. Temas de bolsa de trabajo, temas de seguimiento de problemas, tema de anuncios clasificados, temas de bienes raíces, etc. Todos deben funcionar con un complemento básico. Ya está sucediendo con WooCommerce. WooThemes ha lanzado numerosos temas que tienen soporte de estilo incorporado para el complemento. Otras compañías de temas también han prometido lanzar temas de comercio electrónico basados ​​en WooCommerce. Puede cambiar de un tema a otro y mantener todos sus productos como están. Eso es casi como si el tema cambiara, pero todo encajó en su lugar. Esa es la experiencia de cambio de tema por la que debemos esforzarnos.

¿Por qué no hacer lo mismo con la cartera, los testimonios y otros tipos genéricos de publicaciones personalizadas? ¿Es porque es demasiado simple frente a que el comercio electrónico es una bestia más grande para conquistar? Claramente, el comercio electrónico tiene demasiados campos en comparación con los demás, por lo que debería ser mucho más fácil para estos tipos de publicaciones genéricas. Es solo una cuestión de hacer un esfuerzo consciente para mejorar las cosas.

Echa un vistazo a Complemento ReciPress. Crea un metabox personalizado con campos de recetas y lo adjunta con publicaciones. Sin embargo, es posible adjuntarlo con tipos de publicaciones personalizadas. Cualquiera que use este complemento puede cambiar de tema sin tener que pasar por tantos problemas.

Sería bueno ver que temas como AgentPress funcionen con un complemento base centralizado. Sería genial ver que la transición de los temas cambiantes se vuelve más fácil. Por ejemplo, si un usuario cambia de un tema de fotografía a otro, no debería ser un caos. Pueden ocurrir errores menores, pero al menos en el panorama general, las cosas funcionarán.

Siempre puede dar ejemplos de tipos de publicaciones súper personalizadas creadas para uso único del cliente, pero esa es la excepción, no la regla.

¿Qué opinan ustedes sobre este tema? ¿Dónde debe residir el código de tipos de publicaciones personalizadas? ¿En el archivo functions.php o en complementos?

Deja un comentario