SlideShare une entreprise Scribd logo
1  sur  96
Télécharger pour lire hors ligne
WordPress
EL FRAMEWORK DESCONOCIDO
¿Quien soy?
Samuel Rocha - @sjrocha
● Usuario de WordPress desde 2007
● Cofundador de Maanju Studio en 2010
● Director de Proyectos
● Consultor de WordPress
● Consultor SEO
● Plugin Developer en WordPress.org
WordPress ¿CMS o FrameWork?
Definición de Framework
En el desarrollo de software, un entorno de trabajo es una estructura conceptual y tecnológica de
asistencia definida, normalmente, con artefactos o módulos concretos de software, que puede servir de
base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas,
bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los
diferentes componentes de un proyecto.
Extraido de https://es.wikipedia.org/wiki/Framework
Definición de CMS
Un sistema de gestión de contenidos (en inglés: Content Management System, más conocido por sus siglas
CMS) es un programa informático que permite crear una estructura de soporte (framework) para la
creación y administración de contenidos, principalmente en páginas web, por parte de los
administradores, editores, participantes y demás usuarios.
Extraido de https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos
¿DESCONOCIDO?
Primeros resultados de google para “framework php”
Posición 1:
- Aura
- FuelPHP
- Slim
- Phalcon
- CakePHP
- Zend Framework
- Yii
- Codeigniter
- Symfony2
- Laravel
Primeros resultados de google para “framework php”
Posición 2:
- Laravel
- Symfony
- codeigniter
- Yii 2
- Phalcon
- CakePHP
- Zend Framework
- Slim
- FuelPHP
- PHPixie
- Zikula
- Kohana
- Flight
- Fat-Free
- PHP Mini
- Simple PHP framework
Primeros resultados de google para “framework php”
Posición 3:
- Laravel
- Phalcon
- Symphony
- CodeIgniter
- CakePHP
- Zend
- FuelPHP
- Slim
- Phpixie
- Fat-Free
- Aura
- Yii 2
Primeros resultados de google para “framework php”
Posición 4:
- CodeIgniter
- Laravel
Primeros resultados de google para “framework php”
Posición 5:
- Laravel
- Phalcon
- Symfony
- CodeIgniter
- Yii
Primeros resultados de google para “framework php”
Posición 6:
- Laravel
- CodeIgniter
- Yii
- CakePHP
- Zend Framework 2
Primeros resultados de google para “framework php”
Posición 6:
- Laravel
- CodeIgniter
- Yii
- CakePHP
- Zend Framework 2
Primeros resultados de google para “framework php”
Posición 6:
- Laravel
- CodeIgniter
- Yii
- CakePHP
- Zend Framework 2
Primeros resultados de google para “framework php”
Posición 8:
- Laravel
- CodeIgniter
- Yii
- CakePHP
- Zend Framework 2
Primeros resultados de google para “framework php”
Posición 9:
- Laravel
- Symfony
- CodeIgniter
- Yii 2
- Phalcon
- CakePHP
- Zend Framework
- Slim
- FuelPHP
- PHPixie
Estructura de WordPress
SISTEMA DE ARCHIVOS DE WORDPRESS
Archivo de configuración:
- conexión a la base de datos
- activación del modo “debug”
- definición de constantes
Contenido del proyecto:
- Diseño
- Funcionalidades extra
- Archivos multimedia
SISTEMA DE ARCHIVOS DE WORDPRESS
Núcleo de
WordPress
BASE DE DATOS WORDPRESS
BASE DE DATOS WORDPRESS
TABLA CONFIGURACIÓN:
- wp_options
- URL del sitio
- Título del sitio
- Descripción del sitio
- Email del admin
- Formato de la fecha
- Formato de URL
- Codificación
- Idiomas
- Configuraciones de plugins
- ....
BASE DE DATOS WORDPRESS
TABLAS USUARIOS:
- wp_users (entidad base)
- nickname
- password
- email
- fecha registro
- display name
- wp_usermeta (campos extra)
- Nombre
- Apellidos
- Descripción
- Permisos
- Enlaces redes sociales
- Datos de configuración
- ...
BASE DE DATOS WORDPRESS
TABLA DE POST - “ENTIDADES”:
- wp_posts
Entradas, Páginas, Medios, +Custom Post
- Título
- Contenido
- Slug
- Autor
- Fecha publicación
- Fecha actualización
- Post Type
- Comentarios abiertos
- ...
- wp_postmeta
otros valores como:
- plantilla
- subtítulo
- (lo que quieras)
BASE DE DATOS WORDPRESS
TABLA DE TERM - “RELACIONES”:
- wp_terms
Para agrupar contenidos
- id
- nombre
- slug
- wp_term_taxonomy
Definición del term con el tipo de taxonomía:
Categorías, Etiquetas, Menú, +custom
- tipo de taxonomía
- descripción
- id del padre
- wp_termmeta
información extra como:
- título y descripciones seo
- imagen
- wp_term_relationships
Relación del taxonomía con los wp_posts
“ENTIDADES”
BASE DE DATOS WORDPRESS
TABLA DE COMENTARIOS:
- wp_comments
- entidad a la que pertenece
- autor
- email
- comentario
- IP autor
- fecha publicación
- ...
- wp_commentmeta
para añadir más valores
- valoraciones
- notas internas
WP-CONTENT: Plugins, Theme y Uploads
- Plugins: Carpeta donde se añaden nuevas funcionalidades a wordpress
- Ejemplos: Formularios de contacto, Sistemas Anti Spam, Tiendas Online, Sistema para mejorar el SEO,
importadores de contenido, sistemas de slider de imágenes, sistemas de pago, y un largo etcétera.
- Themes: Carpeta donde colocamos el diseño de nuestra web.
- Hay gratuitos, de pago y el que te hagas tu mismo :D
- Uploads: Carpeta donde se suben todos los ficheros usando el sistema multimedia de WordPress.
- Ejemplos. Imágenes, Documentos, Vídeos, PDF.
Paso a paso:
Desarrollando un proyecto
Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ...
EVENTOS
USUARIOS
TIPO
EVENTOS
LUGARES
NOTICIAS CATEGORÍAROLES
CONTENIDO
ESTÁTICO
Diagrama de la base de datos
● Creación de la base de datos con los campos
(nombre, definición del valor)
● Creación del CRUD con la BBDD
● Creación del MVC
● Crear la administración para usuarios
○ Pantalla de login
○ Dashboard
○ Acceso a datos (multiplicar por cada entidad
y relación).
● + HTML, CSS, JavaScript
○ Librería bootstrap
Programando (lo básico)
● Creación vista pública
● Mostrar contenidos
● Crear la navegación
● Crear el diseño de la web
○ CSS (Hoja de estilos)
○ Librerías javascript
○ Imágenes
● Control de errores 404
¿Cuánto tiempo y dinero llevaría
desarrollar todo esto?
(con los framework php)
Más de lo que la mayoría
puede permitirse.
(En tiempo y dinero)
Y no entramos en lo siguiente:
● Validación de datos.
● Gestión de permisos.
● Notificaciones por email.
● Acceso y registro de usuarios.
● Formularios de contacto.
● Sistema de comentario.
● Subida y gestión de archivos multimedia.
● Actualización de librerías: jQuery,
Bootstrap, OwlCarousel
● URL amigables.
● SEO.
● Diseño.
● Previsualización del contenido.
● Actualizaciones de seguridad.
● Control de SPAM.
● Funciones de compartir en redes sociales.
● Programación de contenido en el futuro.
● Multi-idiomas.
● etc.
Conociendo WordPress
La administración
Déjate de rollos,
¡QUEREMOS CÓDIGO!
Creando “ENTIDADES”
En WordPress Custom Post Type (CPT)
Creando un plugin para las entidades
- Nombre del plugin (carpeta y fichero)
- Encabezado, definición del plugin
- Creando los Custom Post Types
- Creando las Custom Taxonomies
- Vista en la administración
- Vista en el Front-page
Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ...
EVENTOS
USUARIOS
TIPO
EVENTOS
LUGARES
NOTICIAS CATEGORÍAROLES
CONTENIDO
ESTÁTICO
Diagrama de una base de datos
EXPLICACIÓN DE LOS HOOKS
En WordPress tenemos dos tipos de hooks. Y podemos definirlos de la siguiente forma:
Action Hooks: Estos te permiten añadir o quitar código en distintos puntos de WordPress.
add_action( ‘init’, ‘nombre_de_la_funcion’);
Filter Hooks: Estos te permiten modificar datos que hay dentro del código.
add_filter( 'the_content', 'my_the_content_filter', 20 );
Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ...
EVENTOS
USUARIOS
TIPO
EVENTOS
LUGARES
NOTICIAS CATEGORÍAROLES
CONTENIDO
ESTÁTICO
Diagrama de una base de datos
Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ...
EVENTOS
USUARIOS
TIPO
EVENTOS
LUGARES
NOTICIAS CATEGORÍAROLES
CONTENIDO
ESTÁTICO
Diagrama de una base de datos
TIPS - Generar los CPT
https://generatewp.com/post-type/
Creando los “Campos”
Añadiendo las variables desde WordPress
1. Sin plugins: desde la administración de Wordpress
- Añadimos una “key” y su “value”.
- Contenido de texto plano.
- Poco intuitivo.
2. Con plugins: Advanced Custom Fields
- Variedad de tipo de campos: fechas, mapa, select.
- Campos condicionales.
- Muy intuitivo y visual.
1. Campos Personalizados
1. Campos Personalizados
2. Plugin Advanced Custom Fields (ACF)
2. Plugin Advanced Custom Fields (ACF)
¿Y esto cómo lo ven los usuarios?
Creando nuestro theme
Sistema de Plantillas
- Jerarquía de las plantillas
- Child Theme
- Accediendo a los datos del ACF
Más info: https://developer.wordpress.org/themes/basics/template-hierarchy/
Child Themes
Un "tema hijo" en WordPress es un tema que hereda la
funcionalidad de otro tema, llamado "tema padre". Los temas
hijos permiten modificar o añadir las funcionalidades del tema
padre. Un tema hijo es la forma más segura y fácil de modificar
un tema existente, tanto si se quiere hacer pequeños cambios
como otros más amplios.
Más info: https://codex.wordpress.org/es:Temas_hijos
¿CUÁNTO HAS TARDADO EN
DESARROLLARLO?
15 HORAS
Y SE VE ASÍ
Web de la feriadesanlucas.com
Todo lo que se ha utilizado
GRATUITO
● Plugins propio (visto en la charla)
● Advanced Custom Fields
● Yoast SEO
DE PAGO
● HOSTING Y DOMINIO
● ORBITAL THEME
WordPress es mucho más...
● Sistema de shortcodes
● Tiene una API REST en json
● Interfaz de línea de comandos (WP-CLI)
● Editor Gutenberg (Contenido Drag&Drop)
● Documentación y comunidad
● Directorio de plugins y themes
UN REGALO
https://samuelrocha.es/orbital
¿Alguna pregunta?
¡MUCHAS GRACIAS!
@sjrocha

Contenu connexe

Tendances

Introduccion html5
Introduccion html5Introduccion html5
Introduccion html5ADWE Team
 
Desarrollo de aplicaciones con HTML5
Desarrollo de aplicaciones con HTML5 Desarrollo de aplicaciones con HTML5
Desarrollo de aplicaciones con HTML5 Gonzalo C.
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYJuan Eladio Sánchez Rosas
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Hernan Beati
 
Servicios de Internet 1
Servicios de Internet 1Servicios de Internet 1
Servicios de Internet 1betoupds
 
Ppt5 bcd.pptm recuperado
Ppt5 bcd.pptm recuperadoPpt5 bcd.pptm recuperado
Ppt5 bcd.pptm recuperadojohanRn21
 
Html5 telefonica-curso
Html5 telefonica-cursoHtml5 telefonica-curso
Html5 telefonica-cursoJuan Quemada
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxIñaki Arenaza
 
Seminario html5
Seminario html5Seminario html5
Seminario html5UDECI
 
Dreamweaver cs5 naty
Dreamweaver cs5 natyDreamweaver cs5 naty
Dreamweaver cs5 natynataliareniz
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Paradigma Digital
 
Manual De Wordpress
Manual De WordpressManual De Wordpress
Manual De WordpressStiven Marin
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!SergioIglesiasNET
 

Tendances (20)

Introduccion html5
Introduccion html5Introduccion html5
Introduccion html5
 
Tecnologia periodo ii
Tecnologia periodo iiTecnologia periodo ii
Tecnologia periodo ii
 
HTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas SemanticasHTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas Semanticas
 
Desarrollo de aplicaciones con HTML5
Desarrollo de aplicaciones con HTML5 Desarrollo de aplicaciones con HTML5
Desarrollo de aplicaciones con HTML5
 
Investigacion de pagina web
Investigacion de pagina webInvestigacion de pagina web
Investigacion de pagina web
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOY
 
Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011
 
Servicios de Internet 1
Servicios de Internet 1Servicios de Internet 1
Servicios de Internet 1
 
Curso html5-v1
Curso html5-v1Curso html5-v1
Curso html5-v1
 
Johan T,T
Johan T,TJohan T,T
Johan T,T
 
Ppt5 bcd.pptm recuperado
Ppt5 bcd.pptm recuperadoPpt5 bcd.pptm recuperado
Ppt5 bcd.pptm recuperado
 
Html5 telefonica-curso
Html5 telefonica-cursoHtml5 telefonica-curso
Html5 telefonica-curso
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
 
Dreamweaver cs5 naty
Dreamweaver cs5 natyDreamweaver cs5 naty
Dreamweaver cs5 naty
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3
 
Manual De Wordpress
Manual De WordpressManual De Wordpress
Manual De Wordpress
 
HTML5 y CSS3
HTML5 y CSS3HTML5 y CSS3
HTML5 y CSS3
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!
 

Similaire à Wordpress: El Framework desconocido

El mundo de los sitios web
El mundo de los sitios webEl mundo de los sitios web
El mundo de los sitios webrodmazzo
 
Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpressMilton González
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...Asociación Webmasters Cantabria
 
Cómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressCómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressNelio Software
 
Taller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebTaller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebAbrirllave
 
Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Nelio Software
 
Analisis seo.ppt2
Analisis seo.ppt2Analisis seo.ppt2
Analisis seo.ppt2Maribel_kar
 
Entendiendo Yii - Flisol 2016
Entendiendo Yii - Flisol 2016Entendiendo Yii - Flisol 2016
Entendiendo Yii - Flisol 2016Plattinux
 
WordPress para periodistas que van por libre
WordPress para periodistas que van por libreWordPress para periodistas que van por libre
WordPress para periodistas que van por libreidibay
 
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009ferranbonas
 
Cómo montar tu sitio en Internet – Día 4
Cómo montar tu sitio en Internet – Día 4Cómo montar tu sitio en Internet – Día 4
Cómo montar tu sitio en Internet – Día 4digitalde
 

Similaire à Wordpress: El Framework desconocido (20)

El mundo de los sitios web
El mundo de los sitios webEl mundo de los sitios web
El mundo de los sitios web
 
Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpress
 
Drupal Workshop
Drupal WorkshopDrupal Workshop
Drupal Workshop
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Joomla Cms
Joomla CmsJoomla Cms
Joomla Cms
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
 
Diseño web
Diseño webDiseño web
Diseño web
 
Cómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressCómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPress
 
Taller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo WebTaller de iniciación al SEO y Desarrollo Web
Taller de iniciación al SEO y Desarrollo Web
 
Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)
 
Analisis seo.ppt2
Analisis seo.ppt2Analisis seo.ppt2
Analisis seo.ppt2
 
Entendiendo Yii - Flisol 2016
Entendiendo Yii - Flisol 2016Entendiendo Yii - Flisol 2016
Entendiendo Yii - Flisol 2016
 
WordPress para periodistas que van por libre
WordPress para periodistas que van por libreWordPress para periodistas que van por libre
WordPress para periodistas que van por libre
 
Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009Programación Optimizada - Search Congress Valencia 2009
Programación Optimizada - Search Congress Valencia 2009
 
Cómo montar tu sitio en Internet – Día 4
Cómo montar tu sitio en Internet – Día 4Cómo montar tu sitio en Internet – Día 4
Cómo montar tu sitio en Internet – Día 4
 
CMS - Joomla
CMS - JoomlaCMS - Joomla
CMS - Joomla
 
Seo
SeoSeo
Seo
 
Cms
CmsCms
Cms
 
Diseño web
Diseño webDiseño web
Diseño web
 

Wordpress: El Framework desconocido

  • 2. ¿Quien soy? Samuel Rocha - @sjrocha ● Usuario de WordPress desde 2007 ● Cofundador de Maanju Studio en 2010 ● Director de Proyectos ● Consultor de WordPress ● Consultor SEO ● Plugin Developer en WordPress.org
  • 3. WordPress ¿CMS o FrameWork?
  • 4. Definición de Framework En el desarrollo de software, un entorno de trabajo es una estructura conceptual y tecnológica de asistencia definida, normalmente, con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. Extraido de https://es.wikipedia.org/wiki/Framework
  • 5. Definición de CMS Un sistema de gestión de contenidos (en inglés: Content Management System, más conocido por sus siglas CMS) es un programa informático que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en páginas web, por parte de los administradores, editores, participantes y demás usuarios. Extraido de https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos
  • 7. Primeros resultados de google para “framework php” Posición 1: - Aura - FuelPHP - Slim - Phalcon - CakePHP - Zend Framework - Yii - Codeigniter - Symfony2 - Laravel
  • 8. Primeros resultados de google para “framework php” Posición 2: - Laravel - Symfony - codeigniter - Yii 2 - Phalcon - CakePHP - Zend Framework - Slim - FuelPHP - PHPixie - Zikula - Kohana - Flight - Fat-Free - PHP Mini - Simple PHP framework
  • 9. Primeros resultados de google para “framework php” Posición 3: - Laravel - Phalcon - Symphony - CodeIgniter - CakePHP - Zend - FuelPHP - Slim - Phpixie - Fat-Free - Aura - Yii 2
  • 10. Primeros resultados de google para “framework php” Posición 4: - CodeIgniter - Laravel
  • 11. Primeros resultados de google para “framework php” Posición 5: - Laravel - Phalcon - Symfony - CodeIgniter - Yii
  • 12. Primeros resultados de google para “framework php” Posición 6: - Laravel - CodeIgniter - Yii - CakePHP - Zend Framework 2
  • 13. Primeros resultados de google para “framework php” Posición 6: - Laravel - CodeIgniter - Yii - CakePHP - Zend Framework 2
  • 14. Primeros resultados de google para “framework php” Posición 6: - Laravel - CodeIgniter - Yii - CakePHP - Zend Framework 2
  • 15. Primeros resultados de google para “framework php” Posición 8: - Laravel - CodeIgniter - Yii - CakePHP - Zend Framework 2
  • 16. Primeros resultados de google para “framework php” Posición 9: - Laravel - Symfony - CodeIgniter - Yii 2 - Phalcon - CakePHP - Zend Framework - Slim - FuelPHP - PHPixie
  • 18. SISTEMA DE ARCHIVOS DE WORDPRESS Archivo de configuración: - conexión a la base de datos - activación del modo “debug” - definición de constantes Contenido del proyecto: - Diseño - Funcionalidades extra - Archivos multimedia
  • 19. SISTEMA DE ARCHIVOS DE WORDPRESS Núcleo de WordPress
  • 20. BASE DE DATOS WORDPRESS
  • 21. BASE DE DATOS WORDPRESS TABLA CONFIGURACIÓN: - wp_options - URL del sitio - Título del sitio - Descripción del sitio - Email del admin - Formato de la fecha - Formato de URL - Codificación - Idiomas - Configuraciones de plugins - ....
  • 22. BASE DE DATOS WORDPRESS TABLAS USUARIOS: - wp_users (entidad base) - nickname - password - email - fecha registro - display name - wp_usermeta (campos extra) - Nombre - Apellidos - Descripción - Permisos - Enlaces redes sociales - Datos de configuración - ...
  • 23. BASE DE DATOS WORDPRESS TABLA DE POST - “ENTIDADES”: - wp_posts Entradas, Páginas, Medios, +Custom Post - Título - Contenido - Slug - Autor - Fecha publicación - Fecha actualización - Post Type - Comentarios abiertos - ... - wp_postmeta otros valores como: - plantilla - subtítulo - (lo que quieras)
  • 24. BASE DE DATOS WORDPRESS TABLA DE TERM - “RELACIONES”: - wp_terms Para agrupar contenidos - id - nombre - slug - wp_term_taxonomy Definición del term con el tipo de taxonomía: Categorías, Etiquetas, Menú, +custom - tipo de taxonomía - descripción - id del padre - wp_termmeta información extra como: - título y descripciones seo - imagen - wp_term_relationships Relación del taxonomía con los wp_posts “ENTIDADES”
  • 25. BASE DE DATOS WORDPRESS TABLA DE COMENTARIOS: - wp_comments - entidad a la que pertenece - autor - email - comentario - IP autor - fecha publicación - ... - wp_commentmeta para añadir más valores - valoraciones - notas internas
  • 26. WP-CONTENT: Plugins, Theme y Uploads - Plugins: Carpeta donde se añaden nuevas funcionalidades a wordpress - Ejemplos: Formularios de contacto, Sistemas Anti Spam, Tiendas Online, Sistema para mejorar el SEO, importadores de contenido, sistemas de slider de imágenes, sistemas de pago, y un largo etcétera. - Themes: Carpeta donde colocamos el diseño de nuestra web. - Hay gratuitos, de pago y el que te hagas tu mismo :D - Uploads: Carpeta donde se suben todos los ficheros usando el sistema multimedia de WordPress. - Ejemplos. Imágenes, Documentos, Vídeos, PDF.
  • 28. Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ... EVENTOS USUARIOS TIPO EVENTOS LUGARES NOTICIAS CATEGORÍAROLES CONTENIDO ESTÁTICO Diagrama de la base de datos
  • 29. ● Creación de la base de datos con los campos (nombre, definición del valor) ● Creación del CRUD con la BBDD ● Creación del MVC ● Crear la administración para usuarios ○ Pantalla de login ○ Dashboard ○ Acceso a datos (multiplicar por cada entidad y relación). ● + HTML, CSS, JavaScript ○ Librería bootstrap Programando (lo básico) ● Creación vista pública ● Mostrar contenidos ● Crear la navegación ● Crear el diseño de la web ○ CSS (Hoja de estilos) ○ Librerías javascript ○ Imágenes ● Control de errores 404
  • 30. ¿Cuánto tiempo y dinero llevaría desarrollar todo esto? (con los framework php)
  • 31. Más de lo que la mayoría puede permitirse. (En tiempo y dinero)
  • 32. Y no entramos en lo siguiente: ● Validación de datos. ● Gestión de permisos. ● Notificaciones por email. ● Acceso y registro de usuarios. ● Formularios de contacto. ● Sistema de comentario. ● Subida y gestión de archivos multimedia. ● Actualización de librerías: jQuery, Bootstrap, OwlCarousel ● URL amigables. ● SEO. ● Diseño. ● Previsualización del contenido. ● Actualizaciones de seguridad. ● Control de SPAM. ● Funciones de compartir en redes sociales. ● Programación de contenido en el futuro. ● Multi-idiomas. ● etc.
  • 34.
  • 35.
  • 36.
  • 38. Creando “ENTIDADES” En WordPress Custom Post Type (CPT)
  • 39. Creando un plugin para las entidades - Nombre del plugin (carpeta y fichero) - Encabezado, definición del plugin - Creando los Custom Post Types - Creando las Custom Taxonomies - Vista en la administración - Vista en el Front-page
  • 40. Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ... EVENTOS USUARIOS TIPO EVENTOS LUGARES NOTICIAS CATEGORÍAROLES CONTENIDO ESTÁTICO Diagrama de una base de datos
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. EXPLICACIÓN DE LOS HOOKS En WordPress tenemos dos tipos de hooks. Y podemos definirlos de la siguiente forma: Action Hooks: Estos te permiten añadir o quitar código en distintos puntos de WordPress. add_action( ‘init’, ‘nombre_de_la_funcion’); Filter Hooks: Estos te permiten modificar datos que hay dentro del código. add_filter( 'the_content', 'my_the_content_filter', 20 );
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ... EVENTOS USUARIOS TIPO EVENTOS LUGARES NOTICIAS CATEGORÍAROLES CONTENIDO ESTÁTICO Diagrama de una base de datos
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. Diagrama de la base de datos para un proyecto (SIMPLIFICADO). Sin campos: id, nombre, ... EVENTOS USUARIOS TIPO EVENTOS LUGARES NOTICIAS CATEGORÍAROLES CONTENIDO ESTÁTICO Diagrama de una base de datos
  • 68. TIPS - Generar los CPT https://generatewp.com/post-type/
  • 70. Añadiendo las variables desde WordPress 1. Sin plugins: desde la administración de Wordpress - Añadimos una “key” y su “value”. - Contenido de texto plano. - Poco intuitivo. 2. Con plugins: Advanced Custom Fields - Variedad de tipo de campos: fechas, mapa, select. - Campos condicionales. - Muy intuitivo y visual.
  • 73. 2. Plugin Advanced Custom Fields (ACF)
  • 74. 2. Plugin Advanced Custom Fields (ACF)
  • 75.
  • 76.
  • 77.
  • 78.
  • 79. ¿Y esto cómo lo ven los usuarios?
  • 81. Sistema de Plantillas - Jerarquía de las plantillas - Child Theme - Accediendo a los datos del ACF Más info: https://developer.wordpress.org/themes/basics/template-hierarchy/
  • 82.
  • 83. Child Themes Un "tema hijo" en WordPress es un tema que hereda la funcionalidad de otro tema, llamado "tema padre". Los temas hijos permiten modificar o añadir las funcionalidades del tema padre. Un tema hijo es la forma más segura y fácil de modificar un tema existente, tanto si se quiere hacer pequeños cambios como otros más amplios. Más info: https://codex.wordpress.org/es:Temas_hijos
  • 84.
  • 85.
  • 86.
  • 87. ¿CUÁNTO HAS TARDADO EN DESARROLLARLO?
  • 88. 15 HORAS Y SE VE ASÍ
  • 89. Web de la feriadesanlucas.com
  • 90. Todo lo que se ha utilizado GRATUITO ● Plugins propio (visto en la charla) ● Advanced Custom Fields ● Yoast SEO DE PAGO ● HOSTING Y DOMINIO ● ORBITAL THEME
  • 92. ● Sistema de shortcodes ● Tiene una API REST en json ● Interfaz de línea de comandos (WP-CLI) ● Editor Gutenberg (Contenido Drag&Drop) ● Documentación y comunidad ● Directorio de plugins y themes