Comenzaría con esta pregunta: ¿Está la funcionalidad relacionada con presentación de contenido, o con generación / administración de contenido, o del sitio, o de la identidad del usuario?
Si la funcionalidad no está relacionada específicamente con presentación de contenido , entonces está directamente dentro del territorio de Plugin. Esta lista es larga:
- Modificación de los filtros principales de WP (
wp_head
de contenido, como enlaces canónicos, generador y otros meta HTML, etc.
- Site Favicon
- Códigos abreviados de contenido
- Publicar enlaces para compartir
- scripts de pie de página de Google Analytics (y similares)
- herramientas / controles de SEO
- etc.
Si la funcionalidad está relacionada con presentación de contenido , entonces es un candidato para ser incluido en el Tema. En este punto, volvería a criterio de cambio de tema de @ Raf912 : perdería la funcionalidad cuando ¿Cambia de tema? Si la respuesta a esa pregunta es no , la funcionalidad pertenece al tema. Algunos ejemplos:
- Eliminando / anulando el CSS de la galería principal de WP
- Filtrado de la longitud del extracto de la publicación, texto "leer más", etc.
- Todo lo implementado a través de
add_theme_support()
(supongo que este debería ser obvio)
- CSS personalizado
Normalmente, estas dos preguntas proporcionarán una línea de diferenciación bastante clara; sin embargo, hay excepciones.
Tipos de mensajes personalizados
Los tipos de publicación personalizados, por ejemplo, son un poco de un híbrido único de generación y presentación de contenido, dada la forma en que funciona la Jerarquía de plantillas para el tipo de publicación única archivar las páginas de índice y páginas de publicación única . El aspecto de generación de contenido de los CPT normalmente los ubicaría directamente en el territorio de Plugin; sin embargo, los complementos no pueden definir páginas de plantilla que se ajusten de manera inherente al diseño / diseño / estilo de un tema determinado (especialmente si el CPT muestra un título / contenido / meta distinto del habitual, o tiene taxonomías personalizadas asociadas a él).
A largo plazo, la solución a esta disparidad, IMHO, es tener una convención / consenso estándar para la definición de CPT para determinados tipos de contenido (listados de bienes raíces, eventos de calendario, productos de comercio electrónico, biblioteca de libros / medios entradas, etc.). De esa manera, el contenido generado por el usuario se mantendría portátil entre los Temas que implementan la definición estándar / convención de un CPT dado, mientras que los desarrolladores del Tema conservan la flexibilidad para definir el diseño / diseño / estilo de ese CPT en los archivos de plantilla del Tema.
Enlaces de redes sociales
De forma similar, normalmente diría que los enlaces de perfil de redes sociales, que se han convertido en casi todos los temas actuales, son Territorio de Plugins, porque no tienen nada que ver con la presentación de contenido. La mejor solución sería que estos perfiles se definieran en algún lugar del núcleo; sin embargo, actualmente no existe un medio estándar / de consenso para definir estos enlaces. ¿Están mejor definidos en el nivel de configuración del sitio, o por usuario? Si es por usuario, ¿qué meta del usuario se expone en la plantilla? etc.
De nuevo, a largo plazo, la solución a esta disparidad es que cualquiera de los núcleos defina dónde se definen estos enlaces, o bien que la comunidad de desarrolladores del Tema desarrolle su propio consenso. Mientras tanto, realmente no hay nada más que mantenerlos definidos dentro de cada tema.