Este documento explica cómo utilizar el personalizador de WordPress para previsualizar configuraciones en un sitio. Describe los cuatro objetos principales que componen el personalizador (paneles, secciones, controles y ajustes), y cómo añadirlos y asociarlos entre sí utilizando funciones como add_panel(), add_section(), add_setting() y add_control(). También cubre temas como tipos de controles, validaciones, soporte para múltiples idiomas y cómo extender los objetos de personalización de forma personalizada.
Customizer: configurando un sitio en tiempo realwpargentina
Customizer está siendo fuertemente impulsado no sólo dentro de wordpress.org, sino que hay mucho trabajo independiente en torno. Compañías como Obox han creado un theme que extiende en gran manera sus capacidades, convirtiéndolo en un constructor de sitios muy flexible. Otras como Themify emplean Customizer únicamente con controles propios que tienen mayores capacidades que los estándares.
Para usuarios finales, esto significa una mayor facilidad al configurar el sitio en una interface que muestra directamente el tema aplicado, con la chance de cambiarlo y aplicarlo instantáneamente, y configurar apariencia y hasta opciones en tiempo real apreciando cada cambio.
Exposición de lo que nos ofrece SonataAdminBundle y recorrido práctico desde su instalación, aprendiendo a personalizarlo y solventar diversos casos que nos encontramos con frecuencia en la implementación de un panel de administración con este bundle. Charla impartida en deSymfony 2016 (16-17 de septiembre, Madrid).
Los hooks son parte esencial en la programación con WordPress, y que cada desarrollador llegado el momento, tiene que afrontar su comprensión y buen uso para crear mejores temas o plugins.
Con los hooks podemos modificar o añadir funcionalidades personalizadas a cualquier evento de WordPress sin modificar su código fuente.
En esta ponencia vamos a introducir a cualquiera que desarrolle con WordPress, o pretenda mejorar sus conocimientos, al uso de hooks (o ganchos). Aprenderemos para qué sirven, cómo se usan, con ejemplos prácticos y algo de código.
Desarrollo código mantenible en WordPress utilizando SymfonyAsier Marqués
El objetivo de esta charla es mostrar cómo aplicar buenas prácticas de desarrollo cuando trabajemos con WordPress, implementando PSRs y desacoplando nuestro código para poder migrarlo en un futuro a otras opciones sin esfuerzo y dotarle de una buena cobertura de tests.
Veremos cómo podemos desarrollar y mantener plataformas basadas en WordPress utilizando cosas como inyección de dependencias, rutas en anotaciones y controladores; cómo utilizar composer para plugins, themes y sus dependencias; cómo montar los despliegues y qué opciones tenemos para utilizar WordPress desde nuestros Bundes.
Customizer: configurando un sitio en tiempo realwpargentina
Customizer está siendo fuertemente impulsado no sólo dentro de wordpress.org, sino que hay mucho trabajo independiente en torno. Compañías como Obox han creado un theme que extiende en gran manera sus capacidades, convirtiéndolo en un constructor de sitios muy flexible. Otras como Themify emplean Customizer únicamente con controles propios que tienen mayores capacidades que los estándares.
Para usuarios finales, esto significa una mayor facilidad al configurar el sitio en una interface que muestra directamente el tema aplicado, con la chance de cambiarlo y aplicarlo instantáneamente, y configurar apariencia y hasta opciones en tiempo real apreciando cada cambio.
Exposición de lo que nos ofrece SonataAdminBundle y recorrido práctico desde su instalación, aprendiendo a personalizarlo y solventar diversos casos que nos encontramos con frecuencia en la implementación de un panel de administración con este bundle. Charla impartida en deSymfony 2016 (16-17 de septiembre, Madrid).
Los hooks son parte esencial en la programación con WordPress, y que cada desarrollador llegado el momento, tiene que afrontar su comprensión y buen uso para crear mejores temas o plugins.
Con los hooks podemos modificar o añadir funcionalidades personalizadas a cualquier evento de WordPress sin modificar su código fuente.
En esta ponencia vamos a introducir a cualquiera que desarrolle con WordPress, o pretenda mejorar sus conocimientos, al uso de hooks (o ganchos). Aprenderemos para qué sirven, cómo se usan, con ejemplos prácticos y algo de código.
Desarrollo código mantenible en WordPress utilizando SymfonyAsier Marqués
El objetivo de esta charla es mostrar cómo aplicar buenas prácticas de desarrollo cuando trabajemos con WordPress, implementando PSRs y desacoplando nuestro código para poder migrarlo en un futuro a otras opciones sin esfuerzo y dotarle de una buena cobertura de tests.
Veremos cómo podemos desarrollar y mantener plataformas basadas en WordPress utilizando cosas como inyección de dependencias, rutas en anotaciones y controladores; cómo utilizar composer para plugins, themes y sus dependencias; cómo montar los despliegues y qué opciones tenemos para utilizar WordPress desde nuestros Bundes.
Una presentación sobre cómo optimizar el código de tus modelos de ActiveRecord para que Postgres haga lo que mejor sabe hacer: Manejar, ordenar, filtrar e incluso generar datos.
Por diversas causas, nos podemos encontrar con el reto de desarrollar plataformas y servicios online que requieren escalabilidad pero que también estén basados Wordpress.
Más allá de instalar plugins o modificar themes desde el backoffice, requerimos trabajar con Wordpress como si fuese un framework tipo Symfony o Laravel, algo para lo que este CMS no está diseñado.
En esta charla veremos qué problemáticas tiene enfrentarse al reto de crear código mantenible con Wordpress, usando patrones como la inyección de dependencias, soluciones como composer y herramientas que estamos acostumbrados a encontrar no en una solución de CMS, sino en frameworks, más adecuados para esta tarea.
El lenguaje SQL es el lenguaje de operación de las bases de datos. En esta presentación veremos las bases de creación, inserción, borrado y consulta de las bases de datos estándar.
Un buen resumen para alumnos de asignaturas de Bases de datos.
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
Silex es el microframework de moda en el mundo PHP. Silex te permite desarrollar aplicaciones web profesionales con una agilidad sin precedentes. Su aprendizaje es tan rápido y sencillo que podrás dominarlo en menos de una hora.
El taller practico y la documentación usada la encuentran en leninmhs.wordpress.com
Presentación que acompaño a taller practico del framework de desarrollo web de PHP5 YII, con postgreSQL como manejador de bases de datos y sobre s.o Canaima, en la 5ta Jornastec del 2011.
Código fuente y demás recursos del taller en: http://leninmhs.wordpress.com/2011/10/18/v-jornastec-taller-yii-framework/
Una presentación sobre cómo optimizar el código de tus modelos de ActiveRecord para que Postgres haga lo que mejor sabe hacer: Manejar, ordenar, filtrar e incluso generar datos.
Por diversas causas, nos podemos encontrar con el reto de desarrollar plataformas y servicios online que requieren escalabilidad pero que también estén basados Wordpress.
Más allá de instalar plugins o modificar themes desde el backoffice, requerimos trabajar con Wordpress como si fuese un framework tipo Symfony o Laravel, algo para lo que este CMS no está diseñado.
En esta charla veremos qué problemáticas tiene enfrentarse al reto de crear código mantenible con Wordpress, usando patrones como la inyección de dependencias, soluciones como composer y herramientas que estamos acostumbrados a encontrar no en una solución de CMS, sino en frameworks, más adecuados para esta tarea.
El lenguaje SQL es el lenguaje de operación de las bases de datos. En esta presentación veremos las bases de creación, inserción, borrado y consulta de las bases de datos estándar.
Un buen resumen para alumnos de asignaturas de Bases de datos.
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
Silex es el microframework de moda en el mundo PHP. Silex te permite desarrollar aplicaciones web profesionales con una agilidad sin precedentes. Su aprendizaje es tan rápido y sencillo que podrás dominarlo en menos de una hora.
El taller practico y la documentación usada la encuentran en leninmhs.wordpress.com
Presentación que acompaño a taller practico del framework de desarrollo web de PHP5 YII, con postgreSQL como manejador de bases de datos y sobre s.o Canaima, en la 5ta Jornastec del 2011.
Código fuente y demás recursos del taller en: http://leninmhs.wordpress.com/2011/10/18/v-jornastec-taller-yii-framework/
En esta sesión se hablará de cómo sacar rendimiento de un potente gestor de contenidos como WordPress.
¿Quieres saber qué hace que WordPress sea tan versátil y cómo aprovechar sus características al máximo?
Aprovecha WordPress desde su instalación y utilízalo como framework para el desarrollo de aplicaciones web complejas.
2. ¿QUÉ ES?
Es un framework para previsualizar configuraciones en
nuestro sitio (v 3.4)
3. ¿PARA QUÉ SE UTILIZA?
En el personalizador encontramos por defecto opciones de
configuración como:
- Identidad del sitio (título, descripción, logo…)
- Gestión de Menús
- Gestión de Widgets
- Portada
Muchos temas y plugins utilizan el personalizador para
ofrecer al usuario opciones de configuración propias:
- Colores y estilos
- API keys
- Layouts
- Claims
9. UN POCO DE CÓDIGO…
Necesitamos crear una función en el archivo functions.php
de nuestro tema o en nuestro plugin, y añadirla al hook
‘customize_register’
function themeslug_customize_register( $wp_customize ) {
// Do stuff with $wp_customize, the WP_Customize_Manager object.
}
add_action( 'customize_register', 'themeslug_customize_register' );
Importante: Es recomendable el uso de prefijos para
cualquier ID de los objetos que vamos a crear a
continuación para evitar conflictos
10. MÉTODOS
Para cada objeto: add_, get_ y remove_
$wp_customize->add_panel();
$wp_customize->get_panel();
$wp_customize->remove_panel();
$wp_customize->add_section();
$wp_customize->get_section();
$wp_customize->remove_section();
$wp_customize->add_setting();
$wp_customize->get_setting();
$wp_customize->remove_setting();
$wp_customize->add_control();
$wp_customize->get_control();
$wp_customize->remove_control();
15. AÑADIENDO UN SETTING
Usando el método add_setting. Estableceremos el nombre
y el tipo de dato que guardaremos en BBDD. Podremos
establecer un valor por defecto y además validar y
sanitizar el dato antes de guardarlo
$wp_customize->add_setting( 'setting_id', array(
'type' => 'theme_mod', // or 'option'
'capability' => 'edit_theme_options',
'theme_supports' => '', // Rarely needed.
'default' => '', // Ej: #000000
'transport' => 'refresh', // or postMessage
'sanitize_callback' => '', // Ej: ‘sanitize_hex_color’
'sanitize_js_callback' => '', // Basically to_json.
) );
16. AÑADIENDO UN CONTROL
Usando el método add_control. Al añadir el control lo
asociamos al Setting. También indicamos a que Section
pertenece, así como el tipo, título, descripción, etc…
$wp_customize->add_control( 'setting_id', array(
'type' => 'date',
'priority' => 10, // Within the section.
'section' => 'section_id', // Required, core or custom.
'label' => __( 'Fecha', 'your_textdomain' ),
'description' => __( 'Descripción', 'your_textdomain' ),
'input_attrs' => array(
'class' => 'my-custom-class-for-js',
'style' => 'border: 1px solid #900',
'placeholder' => __( 'dd/mm/yyyy', 'your_textdomain' ),
),
'active_callback' => 'is_front_page',
) );
17. TIPOS DE CONTROLS
Podemos usar los siguientes tipos de controles:
• HTML inputs: text, hidden, number, range, url, tel,
email, search, time, date, datetime, y week
(Dependiendo de la compatibilidad del navegador)
• checkbox
• textarea
• radio (las opciones las pasaremos por el parámetro
choices)
• select (las opciones las pasaremos por el parámetro
choices)
• dropdown-pages
• controles personalizados
21. EXTENDIENDO OBJETOS
Podemos crear Panels, Sections, Controls y Settings
personalizados extendiendo las clases asociadas con cada
objeto: WP_Customize_Panel, WP_Customize_Section,
WP_Customize_Control y WP_Customize_Setting:
class WP_New_Menu_Customize_Control extends WP_Customize_Control {
public $type = 'new_menu';
public function render_content() {?>
<button class="button button-primary" id="create-new-menu-submit"
tabindex="0"><?php _e( 'Create Menu', 'your_textdomain' ); ?></button>;
<?php }
}
22. VALIDACIONES
El personalizador nos permite validar y sanitizar nuestras
opciones antes de guardar en base de datos
$wp_customize->add_setting( 'setting_id', array(
'sanitize_callback' => 'absint',
'validate_callback' => 'validate_established_year'
) );
function validate_established_year( $validity, $value ) {
$value = intval( $value );
if ( empty( $value ) || ! is_numeric( $value ) ) {
$validity->add( 'required', __( 'Año no válido', 'your_textdomain' ) );
} elseif ( $value < 1900 ) {
$validity->add( 'year_too_small', __( 'Menor de 1900', 'your_textdomain' ) );
} elseif ( $value > gmdate( 'Y' ) ) {
$validity->add( 'year_too_big', __( 'Mayor que actual', 'your_textdomain' ) );
}
return $validity;
}
23. MULTI-IDIOMA
Tanto WPML como Polylang disponen de la función
icl_get_languages para obtener los idiomas activos de un
sitio
Array (
[es] => Array (
[id] => 2
[active] => 1
[native_name] => Español
[missing] => 1
[translated_name] =>
[language_code] => es
[country_flag_url] => http://wcs16.com/wp-content/plugins/polylang/flags/es.png
[url] => http://wcsantander16.com/es/
)
)