WordPress, como gran herramienta para bloggers, se actualiza a menudo y así mismo aparecen nuevas funciones, nuevos trucos o tips que extienden un poco más las vastas funcionalidades de este poderoso CMS.
1. Mover la barra de administración hacia abajo
La barra de administración es una nueva característica añadida desde WordPress 3.1. Esta barra por aparece por defecto en la parte superior del navegador y muestra enlaces para entrar rápidamente a editar un artículo, crear uno nuevo, ingresar al panel de administración, etc.
Si quieres mostrar esta barra en la parte inferior del navegador, solo debes pegar el siguiente código en el archivo
functions.php de tu theme.
02 | function bajar_admin_bar() { ?> |
03 | <style type= "text/css" > |
08 | body.admin-bar #wphead { |
11 | body.admin-bar #footer { |
18 | #wpadminbar .quicklinks .menupop ul { |
24 | add_action( 'admin_head' , 'bajar_admin_bar' ); |
26 | add_action( 'wp_head' , 'bajar_admin_bar' ); |
2. Eliminar la barra de administración
Si lo que deseas es no mostrar por ningún motivo la barra de administración, solo debes colocar el siguiente código en el archivo
functions.php:
1 | wp_deregister_script( 'admin-bar' ); |
2 | wp_deregister_style( 'admin-bar' ); |
3 | remove_action( 'wp_footer' , 'wp_admin_bar_render' ,1000); |
4 | remove_action( 'init' , 'wp_admin_bar_init' ); |
3. Desbloquear botones útiles en el editor visual
El editor visual de WordPress tiene casi todos los botones necesarios para editar el contenido de tu artículo, pero hay veces que requieres algunas opciones un poco más detalladas, como estilos, tamaños de la fuente, etc.
Para lograr esto solo debes pegar el siguiente código en el archivo
functions.php:
01 | function habilitar_mas_botones( $buttons ) { |
05 | $buttons [] = 'fontselect' ; |
06 | $buttons [] = 'fontsizeselect' ; |
07 | $buttons [] = 'cleanup' ; |
08 | $buttons [] = 'styleselect' ; |
11 | add_filter( "mce_buttons_3" , "habilitar_mas_botones" ); |
Con la anterior función se añade una tercera fila de botones en el editor incluyendo botones para: incluir una línea horizontal, sub-indices, super-indices, seleccionar tipo de fuente, tamaño de fuente, limpiar código y seleccionar estilos. Puedes añadir más estilos si quieres, aquí la
lista completa de botones disponibles.
4. Cambiar la fuente del editor
Si deseas cambiar el tipo de fuente con la que se muestra el texto en el editor visual de WordPress, solo debes pegar el siguiente código en el archivo
functions.php:
1 | add_action( 'admin_head-post.php' , 'cambiar_fuente_editor' ); |
2 | add_action( 'admin_head-post-new.php' , 'cambiar_fuente_editor' ); |
4 | function cambiar_fuente_editor() { ?> |
5 | <style type= "text/css" >#editorcontainer #content, #wp_mce_fullscreen { font-family: Georgia, "Times New Roman" , "Bitstream Charter" , Times, serif; }</style> |
Obviamente puedes cambiar la fuente ’Georgia’ según sea tu gusto.
5. Permitir más etiquetas HTML en el editor HTML de WordPress
El editor HTML de WordPress no permite etiquetas HTML que no sean de XHTML 1.0. Este código hace que el editor acepte más etiquetas, solo debes pegarlo en el archivo
functions.php:
01 | function cambiar_opciones_mce( $initArray ) { |
02 | $ext = 'pre[id|name|class|style],iframe[align|longdesc| name|width|height|frameborder|scrolling|marginheight| marginwidth|src]' ; |
04 | if ( isset( $initArray [ 'extended_valid_elements' ] ) ) { |
05 | $initArray [ 'extended_valid_elements' ] .= ',' . $ext ; |
07 | $initArray [ 'extended_valid_elements' ] = $ext ; |
12 | add_filter( 'tiny_mce_before_init' , 'cambiar_opciones_mce' ); |
6. Hacer que tu artículo se vea mejor cuando se comparte en Facebook
Este código sirve para que cuando un usuario comparte tu artículo en Facebook, se vea lo mejor posible, con imagen relacionada o imagen por defecto, enlace hacia web del autor, título, descripción, etc.
Solo debes colocar el siguiente código en el archivo
header.php de tu theme antes de la etiqueta <?php
wp_head(); ?> :
02 | $thumb = get_post_meta( $post ->ID, '_thumbnail_id' ,false); |
03 | $thumb = wp_get_attachment_image_src( $thumb [0], false); |
07 | <?php if (is_single() || is_page()) { ?> |
08 | <meta property= "og:type" content= "article" /> |
09 | <meta property= "og:title" content= "<?php single_post_title(''); ?>" /> |
10 | <meta property= "og:description" content="<?php |
11 | while (have_posts()):the_post(); |
12 | $out_excerpt = str_replace ( array ( "\r\n" , "\r" , "\n" ), "" , get_the_excerpt()); |
13 | echo apply_filters( 'the_excerpt_rss' , $out_excerpt ); |
15 | <meta property= "og:url" content= "<?php the_permalink(); ?>" /> |
16 | <meta property= "og:image" content= "<?php if ( $thumb[0] == null ) { echo catch_that_image(); } else { echo $thumb; } ?>" /> |
18 | <meta property= "og:type" content= "article" /> |
19 | <meta property= "og:title" content= "<?php bloginfo('name'); ?>" /> |
20 | <meta property= "og:url" content= "<?php bloginfo('url'); ?>" /> |
21 | <meta property= "og:description" content= "<?php bloginfo('description'); ?>" /> |
22 | <meta property= "og:image" content= "<?php if ( $thumb[0] == null ) { echo catch_that_image(); } else { echo $thumb; } ?>" /> |
Y luego pegar el siguiente código en el archivo
functions.php:
01 | function catch_that_image() { |
06 | $output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i' , $post ->post_content, $matches ); |
07 | $first_img = $matches [1] [0]; |
10 | $first_img = get_bloginfo( 'stylesheet_directory' ). "/images/default_icon.jpg" ; |
Aquí solo debes cambiar “default_icon.jpg” por la imagen que quieres que salga por defecto.
7. Acortar dirección de ingreso al Panel de Administración
Para hacer que la dirección de ingreso de usuarios al Panel de administración sea mas simple solo debes poner el siguiente código en el archivo
.htaccess que se encuentra en la carpeta raíz de tu blog:
Con este código ahora la dirección para entrar al formulario de ingreso será
http://www.trazos-web.com/login en vez de
http://www.trazos-web.com/wp-login.php. Obviamente debes cambiar “
http://www.untalchamo.blogspot.com
” por la dirección de tu blog.
8. Deshabilitar cambio de theme
Cuando creas un sitio en WordPress para un cliente, tal vez debas asegurarte que éste no pueda cambiar el theme del blog. Para esto solo debes pegar el siguiente código en el archivo
functions.php:
1 | add_action( 'admin_init' , 'bloquear_theme' ); |
2 | function bloquear_theme() { |
3 | global $submenu , $userdata ; |
5 | if ( $userdata ->ID != 1) { |
6 | unset( $submenu [ 'themes.php' ][5]); |
7 | unset( $submenu [ 'themes.php' ][15]); |
9. Deshabilitar trackbacks hacia artículos del mismo blog
Los trackbacks son un sistema de aviso a otros bloggers de que un artículo de ellos ha sido enlazado desde nuestro artículo. El problema con esto viene cuando enlazas un artículo de tu mismo blog, un trackback hacia ti mismo será mostrado en el artículo enlazado.
Para evitar esto, debes poner el siguiente código en el archivo
functions.php:
1 | function disable_self_ping( & $links ) { |
2 | foreach ( $links as $l => $link ) |
3 | if ( 0 === strpos ( $link , get_option( 'home' ) ) ) |
6 | add_action( 'pre_ping' , 'disable_self_ping' ); |
10. Mostrar imagen miniatura de cualquier sitio
WordPress.com tiene un servicio llamado mShots, que te permite capturar una imagen en miniatura de cualquier sitio. El siguiente código crea un
shortcode para que puedas agregarlo fácilmente a tus artículos. Solo debes pegarlo en el archivo
functions.php:
01 | function wpr_snap( $atts , $content = null) { |
02 | extract(shortcode_atts( array ( |
10 | $img = '<img src="' . $snap . '' . urlencode( $url ) . '?w=' . $w . '&h=' . $h . '" alt="' . $alt . '"/>' ; |
14 | add_shortcode( "snap" , "wpr_snap" ); |
y luego añadir el código del shortcode en la parte del artículo donde quieras que se muestre la imagen:
Esto mostrará una captura en miniatura de Trazos Web de tamaño 400×300 pixéles.
11. Eliminar notificación de actualización para no administradores
Este código hace que las notificación de actualización de WordPress solo sean visibles por los administradores del sitio. Copia y pega el siguiente código en el archivo
functions.php:
3 | if ( $user_login !== "admin" ) { |
4 | add_action( 'init' , create_function( '$a' , "remove_action( 'init', 'wp_version_check' );" ), 2 ); |
5 | add_filter( 'pre_option_update_core' , create_function( '$a' , "return null;" ) ); |
12. Paginación de artículos sin necesidad de un plugin
Este código crea una paginación normal, como lo haría el plugin
WP-Pagenavi. Solo debes pegar el siguiente código en el archivo
functions.php:
01 | function pagination( $prev = '«' , $next = '»' ) { |
02 | global $wp_query , $wp_rewrite ; |
03 | $wp_query ->query_vars[ 'paged' ] > 1 ? $current = $wp_query ->query_vars[ 'paged' ] : $current = 1; |
05 | 'base' => @add_query_arg( 'paged' , '%#%' ), |
07 | 'total' => $wp_query ->max_num_pages, |
09 | 'prev_text' => __( $prev ), |
10 | 'next_text' => __( $next ), 'type' => 'plain' |
12 | if ( $wp_rewrite ->using_permalinks() ) |
13 | $pagination [ 'base' ] = user_trailingslashit( trailingslashit( remove_query_arg( 's' , get_pagenum_link( 1 ) ) ) . 'page/%#%/' , 'paged' ); |
14 | if ( ! empty ( $wp_query ->query_vars[ 's' ]) ) |
15 | $pagination [ 'add_args' ] = array ( 's' => get_query_var( 's' ) ); echo paginate_links( $pagination ); |
Ahora solo debes añadir la función
pagination() al loop de WordPress así:
1 | <?php if ( have_posts() ) : ?> |
2 | <?php while ( have_posts() ) : the_post(); ?> |
5 | <div class = "pagination" ><?php pagination( '»' , '«' ); ?></div> |
También puedes modificar el estilo de la paginación con las siguiente clases de CSS que nos da WordPress:
1 | .page-numbers { font-size : 15px ; } |
2 | .page-numbers.current { color : #222 ; } |
3 | .page-numbers .dots { letter-spacing : 1px } |
4 | a.page-numbers { font-size : 14px ; color : #3888ff ; } |
13. Eliminar contenido de wp_head()
Este código te ayuda a eliminar algún código basura, inútil que se inserta automáticamente en nuestra cabecera de WordPress. Solo pega el siguiente código en el archivo
functions.php:
1 | remove_action( 'wp_head' , 'rsd_link' ); |
2 | remove_action( 'wp_head' , 'wp_generator' ); |
3 | remove_action( 'wp_head' , 'feed_links' , 2); |
4 | remove_action( 'wp_head' , 'index_rel_link' ); |
5 | remove_action( 'wp_head' , 'wlwmanifest_link' ); |
6 | remove_action( 'wp_head' , 'feed_links_extra' , 3); |
7 | remove_action( 'wp_head' , 'start_post_rel_link' , 10, 0); |
8 | remove_action( 'wp_head' , 'parent_post_rel_link' , 10, 0); |
9 | remove_action( 'wp_head' , 'adjacent_posts_rel_link' , 10, 0); |
14. Recortar el tamaño del título
Si solo quieres mostrar algunos caracteres del título del artículo, debes hacer lo siguiente:
Pegar esto en el archivo
functions.php:
1 | function ODD_title( $char ) { |
2 | $title = get_the_title( $post ->ID); |
3 | $title = substr ( $title ,0, $char ); |
Y luego esto donde quieres que vaya el título recortado. Aquí se muestran solo 20 caracteres. Este código debe ir dentro del Loop de WordPress:
15. Permitir a los colaboradores subir archivos
Como medida de seguridad WordPress no permite que los colaboradores puedan subir archivos al blog. Pero si aún así deseas que ellos puedan hacerlo, aquí te dejo el código necesario que debes pegar en el archivo
functions.php:
1 | if ( current_user_can( 'contributor' ) &amp;amp;&amp;amp; !current_user_can( 'upload_files' ) ) |
2 | add_action( 'admin_init' , 'allow_contributor_uploads' ); |
3 | function allow_contributor_uploads() { |
4 | $contributor = get_role( 'contributor' ); |
5 | $contributor ->add_cap( 'upload_files' ); |
16. Categorizar y etiquetar artículos automáticamente
Con este código puedes hacer que al guardar un artículo automáticamente vaya con tal etiqueta o con tal categoría. No olvides modificar “
nuevo tag” o “
Alguna Categoría” por el nombre de la categoría y/o el nombre de la etiqueta. Estas ya deben haber sido creadas anteriormente. Solo pega esto en el archivo
functions.php:
02 | add_action( 'wp_insert_post' , 'update_post_terms' ); |
03 | function update_post_terms( $post_id ) { |
04 | if ( $parent = wp_is_post_revision( $post_id ) ) |
06 | $post = get_post( $post_id ); |
07 | if ( $post ->post_type != 'post' ) |
10 | wp_set_post_terms( $post_id , 'nuevo tag' , 'post_tag' , true ); |
12 | $categories = wp_get_post_categories( $post_id ); |
13 | $newcat = get_term_by( 'name' , 'Alguna Categoría' , 'category' ); |
14 | array_push ( $categories , $newcat ->term_id ); |
15 | wp_set_post_categories( $post_id , $categories ); |
17. Utilizar por defecto el acortador de URLs de Google (goo.gl)
Para utilizar este acortador solo debes incluir lo siguiente en el archivo
functions.php:
01 | function googl_shortlink( $url , $post_id ) { |
03 | if (! $post_id && $post ) $post_id = $post ->ID; |
05 | if ( $post ->post_status != 'publish' ) |
08 | $shortlink = get_post_meta( $post_id , '_googl_shortlink' , true); |
12 | $permalink = get_permalink( $post_id ); |
15 | $headers = array ( 'Content-Type' => 'application/json' ); |
17 | $result = json_decode( $result [ 'body' ]); |
18 | $shortlink = $result ->id; |
21 | add_post_meta( $post_id , '_googl_shortlink' , $shortlink , true); |
29 | add_filter( 'get_shortlink' , 'googl_shortlink' , 9, 2); |
Y luego añadir el siguiente código en donde quieras utilizar la URL corta de tu artículo:
1 | echo "URL corta: " . wp_get_shortlink(); |
18. Redireccionar la búsqueda si solo hay un resultado
Este código redirecciona al primer artículo resultado de una búsqueda, si solo hay un artículo en la búsqueda. Pega esto en el archivo
functions.php:
1 | add_action( 'template_redirect' , 'single_result' ); |
2 | function single_result() { |
5 | if ( $wp_query ->post_count == 1) { |
6 | wp_redirect( get_permalink( $wp_query ->posts[ '0' ]->ID ) ); |
19. Editar el enlace de registro de WordPress
Si deseas cambiar el texto del enlace de registro, puede utilizar este código para personalizarlo. Solo debes ponerlo en el archivo
functions.php y editar el texto
‘Únete, o lo que quieras’:
1 | add_filter( 'gettext' , 'wpc_register_anchor' ); |
2 | add_filter( 'ngettext' , 'wpc_register_anchor' ); |
3 | function wpc_register_anchor( $translated ) { |
4 | $translated = str_ireplace ( 'Register' , 'Únete, o lo que quieras' , $translated ); |
20. Mostrar en el panel de administración el número total de palabras publicadas en el blog
Este código muestra el número total de palabras publicadas en los artículos, justo debajo de las estadísticas de número de artículos, categorías, páginas y etiquetas. Solo pega el siguiente código en el archivo
functions.php:
01 | function post_word_count() { |
03 | $posts = get_posts( array ( |
05 | 'post_type' => array ( 'post' , 'page' ) |
07 | foreach ( $posts as $post ) { |
08 | $count += str_word_count ( strip_tags ( get_post_field( 'post_content' , $post ->ID ))); |
10 | $num = number_format_i18n( $count ); |
11 | $text = _n( 'Palabra' , 'Palabras' , $num ); |
12 | echo "<tr><td class='first b'>{$num}</td><td class='t'>{$text}</td></tr>" ; |
14 | add_action( 'right_now_content_table_end' , 'post_word_count' ); |
21. Detectar el navegador del lector
Este código puede ser útil para mostrar un estilo diferente o algo diferente en cada navegador. Solo debes poner el código en el archivo
functions.php:
01 | function wpc_browser_det( $classes ) { |
02 | global $is_lynx , $is_gecko , $is_IE , $is_opera , $is_NS4 , $is_safari , $is_chrome , $is_iphone ; |
03 | if ( $is_lynx ) $classes [] = 'lynx' ; |
04 | elseif ( $is_gecko ) $classes [] = 'gecko' ; |
05 | elseif ( $is_opera ) $classes [] = 'opera' ; |
06 | elseif ( $is_NS4 ) $classes [] = 'ns4' ; |
07 | elseif ( $is_safari ) $classes [] = 'safari' ; |
08 | elseif ( $is_chrome ) $classes [] = 'chrome' ; |
11 | if (preg_match( '/MSIE ([0-9]+)([a-zA-Z0-9.]+)/' , $_SERVER [ 'HTTP_USER_AGENT' ], $browser_version )) |
12 | $classes [] = 'ie' . $browser_version [1]; |
13 | } else $classes [] = 'unknown' ; |
14 | if ( $is_iphone ) $classes [] = 'iphone' ; |
15 | if ( stristr ( $_SERVER [ 'HTTP_USER_AGENT' ], "mac" ) ) { |
17 | } elseif ( stristr ( $_SERVER [ 'HTTP_USER_AGENT' ], "linux" ) ) { |
19 | } elseif ( stristr ( $_SERVER [ 'HTTP_USER_AGENT' ], "windows" ) ) { |
20 | $classes [] = 'windows' ; |
24 | add_filter( 'body_class' , 'wpc_browser_det' ); |
Y luego poner lo siguiente en el archivo
header.php:
1 | <body <?php body_class(); ?>> |
22. Limitar la búsqueda solo a los títulos de los artículos
Con este código el buscador solo buscará la palabra clave en los título de los artículos. Pégalo en el archivo
functions.php:
01 | function __search_by_title_only( $search , & $wp_query ) |
05 | $q =&amp;amp; $wp_query ->query_vars; |
07 | $n = ! empty ( $q [ 'exact' ]) ? '' : '%' ; |
09 | foreach ( ( array ) $q [ 'search_terms' ] as $term ) { |
10 | $term = esc_sql( like_escape( $term ) ); |
11 | $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')" ; |
14 | $term = esc_sql( like_escape( $q [ 's' ] ) ); |
15 | if ( empty ( $q [ 'sentence' ]) && count ( $q [ 'search_terms' ]) > 1 && $q [ 'search_terms' ][0] != $q [ 's' ] ) |
16 | $search .= " OR ($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')" ; |
17 | if ( ! empty ( $search ) ) { |
18 | $search = " AND ({$search}) " ; |
19 | if ( !is_user_logged_in() ) |
20 | $search .= " AND ($wpdb->posts.post_password = '') " ; |
24 | add_filter( 'posts_search' , '__search_by_title_only' , 10, 2 ); |
23. Generar automáticamente el meta description de un artículo
Para generar automáticamente el
meta description de un artículo solo debes colocar el siguiente código en el archivo
functions.php:
01 | function trw_metadesc() { |
03 | if (!is_single()) { return ; } |
04 | $meta = strip_tags ( $post ->post_content); |
05 | $meta = strip_shortcodes( $post ->post_content); |
06 | $meta = str_replace ( array ( "\n" , "\r" , "\t" ), ' ' , $meta ); |
07 | $meta = substr ( $meta , 0, 125); |
08 | echo "<meta name='description' content='$meta' />" ; |
10 | add_action( 'wp_head' , 'trw_metadesc' ); |
24. Mostrar mensaje personalizado después de registro
Con este código puedes mostrar un mensaje personalizado después del registro de un nuevo usuario. Solo debes pegar lo siguiente en el archivo
functions.php:
01 | add_action( 'register_form' , 'trw_mensaje_registro' ); |
02 | function trw_mensaje_registro() { |
04 | <div style= "margin:10px 0;border:1px solid #e5e5e5;padding:10px" > |
05 | <p style= "margin:5px 0;" > |
25. Acortar la dirección de búsqueda
Este pequeño código te ayuda a crear una nueva dirección para las búsquedas. . Solo pega esto en el archivo
functions.php:
1 | function trw_search_url_rule() { |
2 | if ( is_search() && ! empty ( $_GET [ 's' ])) { |
3 | wp_redirect(home_url( "/buscar/" ) . urlencode(get_query_var( 's' ))); |
7 | add_action( 'template_redirect' , 'trw_search_url_rule' ); |
26. Obtener el número de visitas de un artículo sin plugin
Con este código puedes mostrar el número de veces que ha sido visto un artículo. Solo debes hacer lo siguiente:
Pegar este código en el archivo
functions.php:
01 | function getPostViews( $postID ){ |
02 | $count_key = 'post_views_count' ; |
03 | $count = get_post_meta( $postID , $count_key , true); |
05 | delete_post_meta( $postID , $count_key ); |
06 | add_post_meta( $postID , $count_key , '0' ); |
09 | return $count . ' Views' ; |
11 | function setPostViews( $postID ) { |
12 | $count_key = 'post_views_count' ; |
13 | $count = get_post_meta( $postID , $count_key , true); |
16 | delete_post_meta( $postID , $count_key ); |
17 | add_post_meta( $postID , $count_key , '0' ); |
20 | update_post_meta( $postID , $count_key , $count ); |
Luego pegas esto en el archivo
single.php, en cualquier parte dentro del Loop de WordPress:
1 | <?php setPostViews(get_the_ID()); ?> |
Y luego pegas el siguiente código en el archivo
single.php en donde quieras mostrar el número de visitas del artículo:
1 | <?php echo getPostViews(get_the_ID()); ?> |
27. Mostrar los artículos más visitados
Utilizando el código mostrado en el punto 26 y añadiéndole estas líneas, podemos mostrar una lista de los artículos más visitados. Solo debes poner el siguiente código en donde quieres que se muestre esta lista:
2 | query_posts( 'meta_key=post_views_count&orderby=meta_value_num&order=DESC' ); |
5 | <?php while (have_posts()) : the_post(); ?> |
6 | <li><a href= "<?php echo the_permalink(); ?>" title= "Enlace Permanente a <?php echo the_title() ?> (<?php echo getPostViews($post->ID); ?> visitas)" ><?php echo the_title() ?></a></li> |
28. Mostrar número de visitas de cada artículo en listado de artículos del Panel de Administración
Con este código, más el código mostrado en el punto 26, podrás agregar una columna al listado de artículos del Panel de Administración donde se muestre el número de veces que ha sido visitado un artículo: Solo debes pegar este código en el archivo
functions.php:
01 | add_filter( 'manage_posts_columns' , 'posts_column_views' ); |
02 | add_action( 'manage_posts_custom_column' , 'posts_custom_column_views' ,5,2); |
03 | function posts_column_views( $defaults ){ |
04 | $defaults [ 'post_views' ] = __( 'Visitas' ); |
07 | function posts_custom_column_views( $column_name , $id ){ |
08 | if ( $column_name === 'post_views' ){ |
09 | echo getPostViews(get_the_ID()); |
0 comentarios:
Publicar un comentario