Si te acabas de unir a nosotros, actualmente estamos revisando 50 acciones de WordPress, de entre las muchas existentes. En el último artículo vimos de la serie de ejemplos del 21 al 30, así que en esta entrada continuaremos explorando la siguiente ronda de acciones.
Si no lo has hecho todavía, te recomiendo que vuelvas atrás te leas nuestra introducción y después leas el siguiente artículo de manera que te pongas rápidamente al día de todo lo que hemos visto hasta la fecha.
Dicho esto, ¡avancemos!
Controlar el código JavaScript predeterminado
WordPress tiene muchos scripts en su núcleo que podemos cargar. La acción wp_default_scripts
nos permite interactuar con los archivos JavaScript predeterminados.
Eliminar «jQuery Migrate» en un sitio web WordPress
Si usas código jQuery y estás totalmente seguro de que tu código es compatible con la versión jQuery 1.9 o posterior, no necesitarás el plugin jQuery Migrate para dar soporte a código jQuery obsoleto. Aquí tienes cómo puedes eliminar su registro:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php add_action( 'wp_default_scripts', 'wp_default_scripts_example' ); function wp_default_scripts_example( &$scripts ) { if ( ! is_admin() ) { $scripts->remove( 'jquery' ); $scripts->add( 'jquery', false, array( 'jquery-core' ) ); } } // Example Source: http://aahacreative.com/2013/08/05/remove-jquery-migrate-wordpress-36/ ?> |
Pero para asegurarte, comprueba cualquier salida en tu frontend relacionada con jQuery y asegúrate de que todavía funcionan. Porque no querrás romper tu sitio web, ¿no?
El <head>
de tu front-end
Esta acción se dispara en la función wp_head()
para que puedas insertar «cosas» en el elemento <head>
del front-end de las páginas de tu sitio.
Utilizar Open Graph en tu sitio web
Open Graph es un importante protocolo que ayuda a que chicos grandes como Facebook, Google, y Twitter entiendan tus páginas. Si proporcionas información mediante el protocolo Open Graph, podrás definir las imágenes destacadas, los títulos, los extracto y similares para tus publicaciones en redes sociales, y ayudarles a crear datos estructurados y válidos para tus páginas.
Veamos cómo podemos utilizar este protocolo e inyectar metadatos relacionados con Open Graph en el <head>
de las páginas de nuestro sitio:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php add_action( 'wp_head', 'wp_head_example' ); function wp_head_example() { global $post; // default image $site_logo = get_stylesheet_directory_uri() . '/images/logo.png'; // homepage if ( is_home() ) { echo '<meta property="og:type" content="website" />'; echo '<meta property="og:url" content="' . get_bloginfo( 'url' ) . '" />'; echo '<meta property="og:title" content="' . esc_attr( get_bloginfo( 'name' ) ) . '" />'; echo '<meta property="og:image" content="' . $site_logo . '" />'; echo '<meta property="og:description" content="' . esc_attr( get_bloginfo( 'description' ) ) . '" />'; } // single post or page elseif ( is_singular() ) { echo '<meta property="og:type" content="article" />'; echo '<meta property="og:url" content="' . get_permalink() . '" />'; echo '<meta property="og:title" content="' . esc_attr( get_the_title() ) . '" />'; if ( has_post_thumbnail( $post->ID ) ) { $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'large' ); echo '<meta property="og:image" content="' . esc_attr( $image[0] ) . '" />'; } else echo '<meta property="og:image" content="' . $site_logo . '" />'; echo '<meta property="og:description" content="' . esc_attr( get_the_excerpt() ) . '" />'; } } // Example Source: http://wpdevsnippets.com/set-opengraph-meta-tags-fix-facebook-share/ ?> |
Inicializando el tema
Cada vez que los archivos de un tema han sido cargados para una página de WordPress, la acción after_setup_theme
es disparada. Como es invocada en cada solicitud de página, puedes enganchar funciones relacionadas con el tema en esta acción.
Configurar características específicas de WordPress a un tema
Existen formas para habilitar características de WordPress para los temas como puedan ser los formatos de entrada o las imágenes destacadas, la forma correcta sería crear una función para ellas y engancharla a la acción after_setup_theme
.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php add_action( 'after_setup_theme', 'after_setup_theme_example' ); function after_setup_theme_example() { add_editor_style(); add_theme_support( 'post-formats', array( 'video', 'gallery' ) ); add_theme_support( 'post-thumbnails' ); } ?> |
Ahora nuestro tema puede tener imágenes destacadas, podemos publicar vídeos o galerías, y nuestro «Editor visual» puede tener su propio archivo para los estilos para que tenga un aspecto similar al front-end.
Añadir columnas personalizadas en el listado de la biblioteca de medios
La acción manage_media_custom_column
nos ayuda a añadir columnas personalizadas al listado de archivos subidos a la Biblioteca de medios.
Mostrar el ID de cada archivo cargado en una columna
Yo odio el proceso de tener que buscar el ID de una imagen destacada que debe ser excluida de una galería en la misma entrada. Lo detesto realmente. Por fortuna, encontré este fragmento de código que me mostraba los IDs de los archivos cargados en la Biblioteca de medios:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php add_filter( 'manage_media_columns', 'manage_media_columns_example' ); add_action( 'manage_media_custom_column', 'manage_media_custom_column_example', 10, 2 ); function manage_media_columns_example( $columns ) { $columns[ 'wps_post_attachments_id' ] = __( 'ID', 'theme-name' ); return $columns; } function manage_media_custom_column_example( $column_name, $attachment_id ){ if ( 'wps_post_attachments_id' === $column_name ) { echo $attachment_id; } } // Example Source: http://wpsnipp.com/index.php/functions-php/media-library-admin-columns-with-attachment-id/ ?> |
¡Espero que te guste!
Transición del estado de los comentarios
Cada vez que cambia el estado de un comentario (‘aprobado’, ‘no aprobado’, ‘spam’ o ‘eliminar’), se disparará un action hook denominado transition_comment_status
. Después de esto, se invocará otra acción con variables en su nombre: comment_(old_status)_to_(new_status)
. Veamos cómo funciona la segunda acción.
Enviar el comentario por email tras aprobar el comentario
Imagina que evitas publicar comentarios antes de aprobarlos manualmente; pero también necesitas informar a tus usuarios en el momento en que sus comentarios sean aprobados. Puedes enviarles un email con la buena noticia usando estas líneas de código en forma de plugin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php add_action( 'comment_unapproved_to_approved', 'comment_unapproved_to_approved_example' ); function comment_unapproved_to_approved_example( $comment ) { $commenter_email = $comment->comment_author_email; $commenter_name = $comment->comment_author; $post_url = get_comment_link( $comment ); $subject = "Your comment is up!"; $message = "Hello $commenter_name,\n\nYour comment has been approved!You can view it below:\n\n$post_url\n\nThank you for sharing your ideas with us!"; wp_mail( $commenter_email, $subject, $message ); } ?> |
Ahora los usuarios que hayan realizado un comentario serán informados en cuanto este sea publicado. A partir de ese momento, es posible que vuelvan a visitar tu blog para ver su comentario y leer los de otros usuarios. Una forma fantástica (y sencilla) de obtener una nueva visita de estos usuarios.
Lo que te queda por leer:
- Gestionar la carga de las plantillas de página
- Gestionar los feeds de WordPress
- Manipular la barra de herramientas
- Controlar el widget predeterminado «Categorías»
- Gestionar el formulario de búsqueda antes de que sea procesado
- Fin de la cuarta parte
Deja una respuesta