WordPress y PHP Avanzado: Conceptos y Funcionalidades

WordPress + PHP Avanzado

1. WordPress (WP)

Es un gestor de contenidos web (Content Manager System -CMS-). Especialmente dirigidos a: Sitios web, blogs y combinaciones web/blog.

Cuentas requeridas al instalar WordPress.

  • La cuenta del hosting.
  • Cuenta en la base de datos de WP.
  • Cuenta acceso FTP.
  • Cuenta del super-administrador de tu instalación de WP.
  • Cuenta de usuarios de distintos perfiles de WP.

2. Conceptos básicos del WordPress.

  • Tema: Plantillas que se utilizan en WP para definir la apariencia y diseño del sitio.
  • Página: Contenido sin dependencia (sitio web clásico).
  • Entrada de un blog(post): Componente básica de contenido de un blog.
  • Comentario a una entrada: Textos breves asociados a una entrada escritos por terceras personas.
  • Categoría (grupos de posts / páginas): Agrupamientos de contenido en WordPress. Admite la construcción de jerarquías (subcategorías).
  • Etiqueta (palabra clave, tags): Palabras clave asociadas a páginas, artículos o entradas.
  • Atajos (shortcode): Texto entre las marcas [] que se sustituyen por el resultado de una función PHP.
  • Plugin: Complementos de software que aumentan las capacidades y posibilidades de WP.
  • Widget: Pequeños bloques con herramientas que realizan funciones específicas.
  • Menú: Menús de navegación y acceso a distintos servicios del portal.

* Categorías / Taxonomías.

Las taxonomías de WP son un mecanismo de agrupamiento o categorización de los elementos de contenido y otros tipos de elementos de la aplicación.

3. Frontend / Backend

  • Programador Back-End: Es el especialista que desarrolla la parte de atrás, el soporte de una web.
  • Programador Front-End: Diseña lo de delante, lo que sí se ve.
  • Panel de control:
  • Configurar el portal (tipo site/blog).
  • Seleccionar tema.
  • Gestionar taxonomías.
  • Gestionar plugins.
  • Actualizaciones.
  • Gestionar los distintos recursos del site: multimedia (imágenes, videos…).

4. Roles de Usuarios.

  • SuperAdmin: Quién cuenta con acceso a la característica de administración de la red de sitios completa.
  • Administrador: Quién tiene acceso a todas las características de administración de un sitio en particular.

* Tareas administrador

  • Actualizaciones.
  • Entradas.
  • Media.
  • Páginas.
  • Comentarios.
  • Información de tu tema o plantilla.
  • Apariencia.
  • Plugins.
  • Usuarios.
  • Herramientas.
  • Ajustes.

6. WP y PHP.

– Añadir funciones propias en WP:

  • Creando en las plantillas las funciones: Plugin Code Snippets.
  • Creando un pluggin.
  • Añadir código personalizado en ficheros de WP. (functions.php).

– Ejemplo Shortcode – Atajo.

En una página poner el shortcode [gracias], se sustituirá por el valor de la función si definimos y registramos la función que queremos que se ejecute modificando un fichero functions.php.

Escritorio -> Apariencia -> Editor archivos temas.

function shortcode_gracias() {

return ‘

¡Gracias por leer mi blog!, si te gusto suscríbete al feed RSS

‘;

}

add_shortcode(‘gracias’,’shortcode_gracias’);

7. PHP Avanzado

– Sintaxis alternativa de estructuras de control

PHP ofrece sintaxis alternativa para: if, while, for, foreach, y switch.

En cada caso, la forma básica de la sintaxis alternativa es cambiar la llave de apertura por dos puntos (:) y la llave de cierre por endif;, endwhile;, endfor;, endoreach;, o endswitch;, respectivamente.

– Funciones anónimas:

Una función anónima no es más que una función que no tiene nombre.

$saludo = function() {

return «….»;

}

echo $saludo(), «

«;

}

– Una clausura o closure.

Una clausura o closure es una función anónima que captura el ámbito actual, y proporciona acceso a ese ámbito cuando se invoca el closure.

$colorCoche = ‘rojo’;

$mostrarColor = function() use ($colorCoche) {

echo «El color del coche es $colorCoche»;

};

$mostrarColor();

Las clausuras permiten usar variables mediante la palabra use. Estas variables su ámbito es el de la función donde se definen, no son como las variables globales.

Si se altera el valor de la variable $colorCoche dentro de la clausura, no afectará a la variable original.

$colorCoche = ‘rojo’;

$colorCoche2 = ‘verde’;

$mostrarColor = function() use ($colorCoche, $colorCoche2 ) {

$colorCoche = ‘azul’;

print(«$colorCoche – $colorCoche2 \n»);

};

$colorCoche2 = ‘amarillo’;

$mostrarColor();

print(«$colorCoche – $colorCoche2 \n»); –> Rojo

– Callback / Callable / Retrollamadas.

Un callback es un tipo de funciones que son pasadas como parámetros y que serán ejecutadas desde otra función o clase.

function example_callback($example) {

return $example;

}

add_filter(‘example_filter’, ‘example_callback’);

Generalmente se utilizan funciones anónimas como callback.

$saludo = function($nombre) {

printf(«Hola %s\r\n», $nombre);

};

$saludo(‘Carlos’);

call_user_func($saludo, «PHP»);

8. Ganchos.

Los ganchos de WP interactúan con código del núcleo de WP.

Hay dos tipos diferentes de ganchos:

  • Ganchos de acción (para agregar / quitar funciones).
  • Ganchos de filtro (Para modificar datos producidos por funciones).

Las funciones que conectamos a un gancho son

– Ganchos de acción (Hooks).

Los hooks de acción son disparadas cuando se pasa algo, como que se cargue la página, se inicie una sesión, etc. Son funciones que tienen generalmente funciones asociadas a ellas.

Algunos ganchos existen para su uso por plugins, no tienen funciones conectadas de forma predeterminada.

Los ganchos de acción permiten que los complementos conocen sus propias funciones y que se ejecuten en varios puntos de la carga de una página.

– Ejemplo Hook predefinido:

function wp_head() {

do_action(‘wp_head’);

}

– Definir función action Hook.

Para asociar nuestras propias funciones a ganchos de acción, debemos usar add_action. Definimos que nuestra función compass_smallprint, y queremos que se ejecute cada vez que se llame a la acción con una prioridad de 20.

add_action(‘compas_in_footer’, ‘compas_smallprint’, 20);

Para llamar a la acción se utiliza do_action()

do_action(‘compas_in_footer’);

– Asociar funciones a un action Hook.

Se puede asociar a una acción más de una función, de forma que se ejecutará primero la de menos prioridad. Si no se indica la prioridad por defecto es 10.

add_action(‘compas_in_footer’, ‘compas_colophon’);

add_action(‘compas_in_footer’, ‘compas_colophon’, 20);

do_action(‘compas_in_footer’);

Puedes enlazar más de una función para la misma acción.

Puedes fijar la prioridad para que ellos se ejecuten en el orden deseado.

– Borrado funciones Action Hook.

Podemos borrar nuestras funciones con remove_action(‘compas_in_footer’, ‘compass_smallprint’, 20′);

O todas las funciones con: remove_all_actions(‘compas_in_footer’);

– Ganchos de filtro

Útil si tienes opciones por defecto en tu tema o plugin que quieras sobrescribir, o si estas creando un tema padre que puede tener elementos sobrescritos de un tema hijo.

Una función de filtro te permite modificar los datos resultantes que son devueltos por funciones ya existentes y deben estar enganchados a los ganchos de filtro.

Adición de filtros mediante add_filter()

Ejecución del gancho de filtro con apply_filters()

– APPLY_FILTERS

apply_filters ( string $tag, mixed $value )

Es la función que se encarga de ejecutar los ganchos.

Tiene tres parámetros: el nombre del hook de filtro, el valor que quieres filtrar, y variables opcionales las cuales se pasan al callback del filtro.

– ADD_FILTERS()

add_filter ( $tag, $function_jto_add, $priority = 10, $accepted_args = 1)

Función que permite añadir funciones de filtro.

Es un callback con 4 parámetros.

$tag puede ser cualquier gancho de WP.

$ function_to_add la función del callback que se ejecuta al activar el gancho.

$ priority Prioridad.

$accepted_Args -> Número de argumentos de la $functio_to_add

– Ejemplo filter hook:

add_filter(«the_content», «mfp_Fix_Text_Spacing»);

function mfp_Fix_Text_Spacing($the_Post) {

$the_New_Post = str_replace (» «, » «, $the_Post);

return $the_New_Post;

}

apply_filters (‘the_content’, string $content)

9. Anatomía de un Tema WP.

Ficheros TEMPLATE

  • index.php -> Plantilla página de inicio del site. OBLIGATORIO.
  • sytle.css -> Fichero CSS principal.
  • header.php -> Plantilla cabecera común.
  • footer.php -> Plantilla del pie de página.
  • sidebar.php -> Plantilla de una barra lateral.
  • front-page.php -> Plantilla de la página de inicio del blog.
  • home.php: Plantilla por defecto de inicio.
  • single.php: Plantilla que muestra una entrada completa por defecto.
  • page.php: Mostrará por defecto cualquier página que creemos.
  • category.php: Es la plantilla a la que llamaremos dentro de single.php.
  • search.php: Esta plantilla nos permite realizar búsquedas en el site.
  • 404.php: Plantilla que se mostrará cuando un enlace esté roto o no funcione.
  • functions.php: Permite crear zonas de menú y de widgets.

10. Etiquetas de plantillas (TAGS).

Son funciones PHP para incluir fácilmente archivos de plantilla desde el tema en otro archivo o para mostrar información de la base de datos.

Etiquetas de plantilla para cargar plantillas:

WP PHP

get_header() -> include(‘header.php’)

get_sidebar() -> include(‘sidebar.php’)

get_footer() -> include(‘footer.php’)

get_search_form() -> include(‘searchform.php’)

Ventaja: Podemos personalizar que código cargando bien la plantilla por defecto u otra personalizada.

if (is_home()):

get_header(‘home’);

elseif (is_404()):

get_header(‘404’);

else :

get_header();

endif;

Gancho acción a ejecutar antes que se cargue la plantilla:

do_action( ‘get_header’, string | null $name, array $args)

– Etiquetas de plantilla para mostrar información de la base de datos:

bloginfo() – muestra el nombre del sitio web según se define en el Panel de control del administrador.

single_post_title() – Muestra el título de la publicación vista.

the_author() – Muestra el autor del mensaje visto en ese momento.

the_content() – Muestra el texto principal de una publicación o página.

the_excerpt() – El extracto de la publicación o página.

11. Las etiquetas condicionales.

Etiquetas condicionales o conditionals tags, son funciones que permiten determinar en qué circunstancias / condiciones deben incluirse ciertas funcionalidades en las plantillas.

Debe ocurrir algo solo si:

is_home() está en la página principal configurada.

is_front_page() está en la página front_page.php

is_single(‘excrusion-apiedramillera’) está la entrada denominada «Excursión a Piedramillera»;

in_category(‘sesion-1’) está la entrada de la categoría «Sesión 1»

12. Interacción C / S WP: CACHE

– Sesiones

WordPress no utiliza sesiones PHP nativas. Depende en gran medida de las cookies para la autenticación y almacena cualquier información adicional sobre una sesión autenticada en la base de datos.

Algunos plugins o temas pueden usar sesiones nativas de php.

13. Widget

Los widget, son bloques que permiten añadir a todas las páginas del portal en una determinada posición distintos elementos.

El widget es un bloque de código php se debe registrar (register_widget(‘name’)) en el WP para que un filtro de acción (‘widgets_init’) lo inicialice para poder utilizar en un tema.

function wpl_load_widget() {

register_widget(‘wpl_widget’);

}

add_action(‘widgets_init’, ‘wpl_load_widget’);

14. Plugins.

Los plugins se añaden al portal desde el Dashboard mediante un fichero zip con el nombre «plugin-name.zip» o desde un repositorio.

– Directorios:

 * admin, para código PHP con funcionalidad de back-end.

 * css, para almacenar nuestras hojas de estilos.

 * includes, para código PHP auxiliar

 * js, para código JavaScript.

 * languages, para la internacionalización de nuestro plugins.

 * public, para código PHP con funcionalidad de front-end.

– Ficheros:

 * plugin-name.php, que es el fichero principal de nuestro plugin.

 * uninstall.php que se ejecutará cuando un usuario borre nuestro plugin para realizar acciones de limpieza en BBDD.

 * README.md

 * CHANGELOG.md

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.