30 trucos, funciones y tips para WordPress

0 Comentarios Wordpress

WordPress es una gran herramienta para blogs y un poderoso CMS, y así como todos los sistemas de gestión de contenidos, necesita ajustes para satisfacer ciertas necesidades. Aquí te dejo 30 trucos o tips o funciones para tu blog en WordPress que harán tu vida mucho más fácil. Este artículo es un complemento de 19 códigos útiles, hacks, para WordPress.

1. Personaliza el formulario de login

Simplemente debes crear un archivo css (login.css) con las opciones que tu desees, y guardarlo en la carpeta de tu tema de WordPress:


/* Custom Login Styles */

html {background:#17272d url(../images/pbd-body.jpg) 0 0 repeat-x;} /* Fondo de la página */
h1 a { /* Imágen del Título (El "Logo de WordPress"). Recuerda actualizar el alto y ancho de las dimensiones de la imágen */
background:url(../images/tw-title.png) 0 0 no-repeat;
width:415px;
height:70px;
}

body.login {border-top-color:#dff4fc;} /* Color de fondo de la barra superior */
.login p#backtoblog a:link, .login p#backtoblog a:visited {color:#17272d;} /* Color de enlaces de la barra superior */
.login p#backtoblog a:hover, .login p#backtoblog a:active {color:#17272d;text-decoration:underline;} /* Efectos de enlaces de la barra superior */

Y luego pones el siguiente código en el archivo functions.php:


<?php
function login_personalizado() {
echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo('template_directory').'/login.css" />';
}
add_action('login_head', 'login_personalizado');
?>

Este código hará que el archivo login.css se cargue cada vez que alguien ingresa a la pagina de login de tu blog.

2. Muestra fechas legibles

Para esto solo debes reemplazar las fechas con el siguiente código:

Para los artículos:


<?php echo 'Publicado hace '. human_time_diff(get_the_time('U'), current_time('timestamp')); ?>

Para los comentarios:


<?php echo 'Dicho hace '. human_time_diff(get_comment_time('U'), current_time('timestamp')); ?>

El resultado sería algo como:

Publicado hace 2 días, Publicado hace un mes, etc.

3. Ponle un estilo diferente a los comentarios del autor

Darle un estilo diferente a los comentarios del autor ahora es mucho más fácil desde la llegada de WordPress 2.7. Solo debes poner el siguiente código en el archivo style.css de tu theme:


li.bypostauthor { color: blue; background: #aaa; /*Aquí puede ir cualquier regla CSS*/ }

4. Muestra el número de fans de tu página en facebook

Si tienes tu página en facebook y deseas mostrar el número de fans de tu página, debes poner el siguiente código en el archivo functions.php:


function cuenta_fans_fb() {
$content = file_get_contents("http://graph.facebook.com/TrazosWeb/");
$fb_likes_count = json_decode($content);
echo $fb_likes_count->{'likes'};
}

Asegúrate de cambiar la dirección para obtener los datos puede terminar con el nombre de usuario de la página en Facebook (http://graph.facebook.com/TrazosWeb/), si tiene una, o con el ID de la página en Facebook (http://graph.facebook.com/375266165276/).

Luego debes colocar el siguiente código donde quieres que se muestre el número de fans en Facebook de tu blog:


Trazos Web tiene <?php echo cuenta_fans_fb(); ?> fans en Facebook

Y el Resultado sería algo como: Trazos Web tiene 240 fans en Facebook.

5. Modificar el largo de los extractos

Es posible cambiar el largo del extracto para que solo salgan un número determinado de palabras. Por defecto solo salen máximo 55 palabras en el extracto, pero si quieres cambiar este número,por ejemplo a un máximo de 150 palabras, solo debes añadir la siguiente función al archivo functions.php:


function largo_extracto($length) {
return 150;
}
add_filter('excerpt_length', 'largo_extracto');

6. Cambiar el […] al final de los extractos

Para cambiar el […] que se muestra la final de cada extracto por un enlace más ‘legible’, solo debes añadir el siguiente código en el archivo functions.php:


function cambiar_final_extracto($more) {
return '<a title="Continúa Leyendo" href="'.  get_permalink() .'" rel="nofollow">Continúa Leyendo</a>';
}
add_filter('excerpt_more', 'cambiar_final_extracto');

7. Controla cuando tus artículos se publican en el RSS

Todos los bloggers cometemos errores de los cuales nos damos cuenta justo después de haber publicado el artículo. Algunos en los minutos siguientes después de haber hecho clic al botón publicar. Así que es mejor retrasar nuestros artículos un poco (5 a 10 minutos) en el RSS. Para lograr esto se añade el siguiente código en el archivo functions.php:


function retraso_articulos_rss($where) {
global $wpdb;

if ( is_feed() ) {
$now = gmdate('Y-m-d H:i:s');

$wait = '<strong>10</strong>'; // Valor en minutos del retraso de los artículos

$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}

add_filter('posts_where', 'retraso_articulos_rss');

El código anterior añade un retraso de 10 minutos para la publicación del artículo en el feed RSS de tu blog. Si deseas cambiar el tiempo debes cambiar el valor que se encuentra en negrita.

8. Añade un menú de navegación personalizado

Desde WordPress 3.0 este CMS viene con un sistema de administración de menús. Si deseas habilitar esta opción debes añadir  el siguiente código al archivo functions.php:


add_theme_support( 'nav-menus' );

Y luego el siguiente código en cualquier archivo de tu theme donde quieres que aparezca el menú que crees:


<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

9. Añade los thumbnails (imágenes miniaturas)

Desde WordPress 2.9 es posible añadir imágenes en miniatura a tu theme de WordPress mediante funciones internas de WordPress. Para esto debes habilitar esta función poniendo el siguiente código en el archivo functions.php:


add_theme_support( 'post-thumbnails' );

Y luego poner el siguiente código dentro del loop donde quieres que aparezca la imágen en miniatura.


<?php the_post_thumbnail(); ?>

10. Añade fondos personalizados

Habilita los fondos personalizados y cabeceras personalizadas añadiendo el siguiente código en el archivo functions.php:


add_custom_background();

11. Añade un botón para donar a PayPal

Si deseas recibir donaciones vía PayPal puedes añadir la siguiente función en el archivo functions.php:


function donate_shortcode( $atts ) {
extract(shortcode_atts(array(
'text' => 'Haz una donación',
'account' => 'REEMPLAZAME',
'for' => '',
), $atts));

global $post;

if (!$for) $for = str_replace(" ","+",$post->post_title);
return '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;amp;business='.$account.'&amp;amp;amp;item_name=Donacion+para+'.$for.'">'.$text.'</a>';

add_shortcode('donate', 'donate_shortcode');

Solo debes reemplazar el ‘Haz una donación‘ y ‘REEMPLÁZAME‘ por tus propios datos y luego añadir el shortcode “[donate]” dentro del artículo en donde quieres mostrar el enlace de donación.

12. Utiliza un shortcode en cualquier archivo de tu theme

Si deseas poner un shortcode fuera de los artículos, deberás poner el siguiente código donde quieres que aparezca el shortcode:


<?php do_shortcode('[donate]'); ?>

13. Cambia los enlaces hacia tu feed sin .htaccess

Para redirigir todos los feeds de tu blog en WordPress hacia una especificada por ti. Solo añade el siguiente código al archivo functions.php:


function custom_feed_link($output, $feed) {
$feed_url = 'http://feedproxy.google.com/TrazosWeb';
$feed_array = array('rss' => $feed_url, 'rss2' => $feed_url, 'atom' => $feed_url, 'rdf' => $feed_url, 'comments_rss2' => '');
$feed_array[$feed] = $feed_url;
$output = $feed_array[$feed];
return $output;
}
function other_feed_links($link) {
$link = 'http://feedproxy.google.com/TrazosWeb';
return $link;
}
//Añadimos nuestras funciones a los filtros específicos
add_filter('feed_link','custom_feed_link', 1, 2);
add_filter('category_feed_link', 'other_feed_links');
add_filter('author_feed_link', 'other_feed_links');
add_filter('tag_feed_link','other_feed_links');
add_filter('search_feed_link','other_feed_links');

Solo debes cambiar las dirección de tu feed por la tuya.

14. Usa un shortcode en los widgets de texto

Para usar un shortcode en un widget de texto, solo debes poner el siguiente código en el archivo functions.php:


add filter('widget_text', 'do_shortcode');

15. Añadir imágenes en miniatura a tu feed RSS

Las imágenes en miniatura por lo general solo se muestran en el diseño del sitio web, pero si también deseas mostrar las imágenes miniatura en el RSS, debes poner el siguiente código en el archivo functions.php:


function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

16. Modificar los campos del perfil de usuario de WordPress

Si deseas quitar campos del perfil que ya casi no se usan como Yahoo o AIM y añadir algunos nuevos como Facebook o Twitter, solo debes añadir la siguiente función en el archivo functions.php:


function extra_contact_info($contactmethods) {
unset($contactmethods['aim']);
unset($contactmethods['yim']);
unset($contactmethods['jabber']);
$contactmethods['facebook'] = 'Facebook';
$contactmethods['twitter'] = 'Twitter';
$contactmethods['linkedin'] = 'LinkedIn';
return $contactmethods;
}
add_filter('user_contactmethods', 'extra_contact_info');

17. Manipula el pié de página del RSS

Para añadir cualquier clase de contenido al pié de página del RSS solo debes añadir el siguiente código al archivo functions.php:


function footer_postrss($content) {
if(is_feed()){
global $wp_query;
$postid = $wp_query->post->ID;
$content = $content.'<br /><hr />Este artículo ha sido escrito por Diego Castillo.';
}
return $content;
}
add_filter('the_excerpt_rss', 'footer_postrss');
add_filter('the_content', 'footer_postrss');

18. Utiliza PHP Flush

Al llamar la función Flush de PHP  fuerzas al servidor a enviar primero la cabecera del blog antes que el resto del contenido. Así el navegador tiene tiempo de cargar todos los archivos de estilo, archivos javascript puestos en la cabecera del blog mientras se cargan las otras partes del blog.
Solo debes añadir el siguiente código después de la etiqueta</head>:


<?php flush(); ?>

19. Modifica el pie de página del panel de administración

Para esto solo debes añadir el siguiente código en el archivo functions.php y añadirle el texto que quieres que tenga el pie de página en el panel de administración:


function remove_footer_admin () {
echo 'Creado con <a href="http://www.wordpress.org" target="_blank">WordPress</a> | Diseñado por <a href="http://www.trazos-web.com" target="_blank">Trazos Web</a></p>';
}

add_filter('admin_footer_text', 'remove_footer_admin');

20. Mostrar el número total de enlaces en tu blogroll

Para mostrar este dato solo debes poner el siguiente código donde quieres que éste se muestre:


<?php
$numlinks = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");
if (0 < $numlinks) $numlinks = number_format($numlinks);
echo $numlinks;
?>

21. Añadir tu logo en el panel de administración de WordPress

Puedes añadir tu logo al panel de administración, justo al lado del enlace hacia el blog en la parte superior izquierda, añadiendo el siguiente código al archivo functions.php:


add_action('admin_head', 'logo_admin');
function logo_admin() {
echo '
<style type="text/css">
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }
</style>
';
}

22. Establece como predeterminado al editor HTML

Si quieres que este editor aparezca por defecto cuando editas o creas un artículo, debes añadir el siguiente código al archivo functions.php:


add_filter('wp_default_editor', create_function('', 'return "html";'));

23. Añade Google Analytics en el pie de página

Solo debes añadir tu código de Google Analytics y añadir todo el código en el archivo functions.php:


add_action('wp_footer', 'add_googleanalytics');
function add_googleanalytics() {
// Pega el código de Google Analytics aquí
}

24. Deshabilitar los enlaces automáticos en los comentarios

Los enlaces en los comentarios pueden ser buenos cuando son relevantes al artículo donde se comenta, pero desafortunadamente muchas personas solo dejan enlaces en los comentarios para incrementar los enlaces hacia sus blogs. Para hacer que estos enlaces no se conviertan en ello y se queden en solo texto, simplemente pega el siguiente código en el archivo functions.php:


remove_filter('comment_text', 'make_clickable', 9);

25. Deshabilitar los widgets por defecto de WordPress

Si quieres eliminar los widgets por defecto de WordPress como Enlaces, Archivos, Calendario, etc, solo debes añadir el siguiente código al archivo functions.php:


function unregister_default_wp_widgets() {
unregister_widget('WP_Widget_Pages');
unregister_widget('WP_Widget_Calendar');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Links');
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Text');
unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_RSS');
unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);


26. Poner automáticamente el año en el pie de página

Por lo general en los pies de páginas de casi todos los blogs hay una nota que indica el año actual y el año de creación del blog. Para automatizar el año actual solo debes poner el siguiente código en el archivo footer.php:


&amp;amp;amp;copy; 2007-<?php echo gmdate(__('Y')); ?> <?php bloginfo('name'); ?>


27. Reemplaza un texto o un enlace en todos los artículos de una sola vez

Si deseas cambiar un texto o un enlace en todos los artículos de blog a la vez, solo debes añadir el siguiente código al archivo functions.php:


function replace_text($text) {
$text = str_replace('WordPress', '<strong>WordPress</strong>', $text);
$text = str_replace('Trazos Web', '<a href="http://www.trazos-web.com/">Trazos Web</a>', $text);

$text = str_replace('Frase Antes', 'Frase Después', $text);
return $text;
}
add_filter('the_content', 'replace_text');

28. Cambia el avatar por defecto de WordPress

Para cambiar el avatar que se muestra por defecto en los comentarios, solo debes añadir el siguiente código en el archivo functions.php:


add_filter( 'avatar_defaults', 'newgravatar' );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo('template_directory') . '/images/gravatar.gif';
$avatar_defaults[$myavatar] = "Trazos Web";
return $avatar_defaults;
}

Obviamente debes crear una imágen personalizada y ubicarla en la carpeta de imágenes del tema de tu blog.

29. Como detectar los visitantes desde sitios específicos

Para detectar los visitantes de sitios como Google, Facebook, Twitter y mostrarles algún contenido especial, solo debes añadir el siguiente código al lugar de tu diseño donde quieres que aparezca el mensaje:



<?php

$ref = $_SERVER['HTTP_REFERER'];
$SE = array( 'google',  'yahoo', 'facebook', 'twitter');
foreach ($SE as $source) {
if (strpos($ref,$source)!==false) echo "Hola mundo";
}

?>


El código anterior muestra el mensaje “Hola mundo” cuando recibe un visitante de Google, Twitter, Facebook o Yahoo. Puedes modificar la lista para que solo muestre el mensaje a un solo sitio.

30. Muestra el número promedio de suscritos al feed RSS

Muchos blogger utilizan el contador de FeedBurner para mostrar el número de suscritos al feed RSS del blog. Pero si quieres mostrar el promedio de suscritos en los últimos 7 días, debes añadir este código al archivo functions.php:


function get_average_readers($feed_id,$interval = 7){
$today = date('Y-m-d', strtotime("now"));
$ago = date('Y-m-d', strtotime("-".$interval." days"));
$feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&amp;amp;amp;dates=".$ago.",".$today;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $feed_url);
$data = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($data);
$fb = $xml->feed->entry['circulation'];

$nb = 0;
foreach($xml->feed->children() as $circ){
$nb += $circ['circulation'];
}

return round($nb/$interval);
}

Y luego añadir el siguiente código donde quieres que aparezca este dato:


<?php
$nb = get_average_readers('trazosweb');
echo "Tengo ".$nb." suscritos al RSS";
?>

Debes cambiar el valor “trazosweb” por tu id de FeedBurner.

Referencias

Este artículo utilizó variada información de los siguientes blogs, ingresa a ellos para obtener más trucos , tips y funciones para WordPress.

0 Comentarios en “30 trucos, funciones y tips para WordPress”

  • Pingback: Tweets that mention 30 trucos, funciones y tips para WordPress | Trazos Web -- Topsy.com()

  • Diego excelente los 30 trucos para aplicar rápidamente a nuestros WordPress.

    Saludos!

  • Muy buen artículo y trabajo.
    Me apunto unos cuantos trucos para tratarlos con calma.
    Saludos

  • Excelentes funciones, más de una se va a mi fichero functions.php :D, gracias!

  • Pingback: 30 trucos para Wordpress | Informatica XP()

  • muy buen post, me gusta el conjunto de snippets muy completo, saludos.

  • Pingback: Goo.gl, Trucos Wordpress, Webs desarrollo Web y más Herramientas | Tecnico Programador()

  • Muy buenos trucos. Hay bastantes que no conocía.

  • Pingback: wp-popular.com » Blog Archive » 30 trucos, funciones y tips para WordPress | Trazos Web()

  • Excelente informacion che, incluso me sirvieron varias como la 2 – 11 – 14 – 19 y 29 😀

    Gracias

  • Muy buena recopilación. gracias

  • No me anda el de Feedbunner :S

  • Diego sos un genio, realmente excelente excelente post.

    Saludos.

  • Me han servido de mucho, gracias

  • muy buenos consejos gracias por compartir el codigo 😀

  • Pingback: Trucos para Wordpress | CMSTECNO()

  • Interesante, bastante bien, el de reemplazar los textos es muy útil y no lo conocía.

    Ahora bien, si quiero reemplazar varios textos ?? solo agrego mas lineas..

    Y supongo que siempre se reemplazaran cuando se escriba esa palabra, por ejemplo, twitter, y que se cambie por un enlace a mi twitter ??

    Gracias por compartir los trucos 😉

  • Pingback: Como puedo hacer aparecer este mensaje en wordpress?()

  • Buena informacion

    felicidades sin embargo hay muchas cosas que todavia no entiendo, pues manejo poco el codigo html, sin embargo muchas gracias

    un saludo

  • Elite Models Mexico

    hola

    la funcion para eliminar campos de contacto del perfil de usuario no funciona, al menos sigo mirando los campos y no miro los que he agregado.

    gracias

  • Francisco

    Amigo conoces alguna función para contar el número de páginas escrita por un autor?
    Contar post y esas cosas ya las conosco pero no puedo encontrar una para contar el número de páginas escritas…

    Saludos y excelente post.

  • Estoy usando algunos de estos códigos para eliminar algunos plugins, ahora bien mi preguntar es cuando se actualiza WP estos códigos siguen siendo compatibles?

  • Muy buen post amigo buenos aportes.
    venia con una duda como soy novato y nuevo en esto no se nada, me podrias ayudar ?.
    Donde encuentro los archivos php de mi tema ?
    no se donde estan por eso no puedo activar estos codigos muy buenos
    ayudame por favor !

  • Saludos y felicitaciones por la página.
    Podrías indicarme qué plugin o cómo pudiste insertar los íconos de facebook, twitter, etc. en la cabecera de tu blog? Además, la explicación de cada botón en el RollOver está buenísima.
    Gracias

  • schubert

    Hola muy interesantes tus articulos he estado practicando de a poco siguiendo tus consejos y provecho para hacerte una consulta talvez me puedes ayudar,instale un theme,funciono bien mire varios post y me gustó pero en un momento me empezo a poner esta leyenda Parse error: syntax error, unexpected ‘<' in /home/usuario/public_html/wp-content/themes/(NOMBRE DEL THEME)/includes/single.php on line 42 , a partir de ahi ya no puedo ingresar ni al panel de control de wordpress cuando escribo http://(mi dominio).com/wp-admin/ aparece la leyenda,desde ya te agradezco cualquier ayuda que me puedas dar para solucionar,saludos
    Schubert

    • Simplemente entra por ftp y borra el theme que este fallando, wordpress volvera al theme por defecto

      • schubert

        Hola Galicianetwoks,fue lo que hice y me resultó,gracias por la ayuda.

    • hola shubert, esos son errores de “sintaxis” es decir si estuviste modificando código en tu tema debes recordar donde fue, entra a tu cpanel y de ahí al “administrador de archivos-wp-content-themes y busca el nombre de tu tema y editas el archivo single.php y revisa la linea 42 como te dice el mensaje de error que sale. Esto ocurre por haber dejado un espacio, una coma,o cualquier otro tipo de error en la escritura del código, espero que te sirva la respuesta, saludos

      • schubert

        Hola Maria Gema,hace un tiempo lo pude resolver, igual muchas gracias por tu aporte,saludos

  • Hola,

    he perdido al crear el theme con artisteer los titulos de los widgets, que truco podría usar recuperarlos,

    gracias!!!

  • Hola,

    que truco puedo usar para mostrar los titulos de los widgets, utilice artisteer y no me los pinta en el html,

    Gracias,
    Javier

  • Muchas gracias por la información, muy útil.
    Felicitaciones por la página, tiene un montón de artículos interesantes.

  • Muchísimas gracias por este post y otros que estoy viendo simultaneamente. Estoy documentándome para crear blogs con cierta calidad con wordpress y desde luego agrego este espacio a mis favoritos.

  • Muy bueno el post, pero creo que el el punto 14 deberías de revisar el cógigo ya que en teoría debería de ser así: add_filter(‘widget_text’, ‘do_shortcode’); es decir le sobra una ‘ y lke falta un _ (al menos son las correcciones que yo he hecho para que funcione). Por lo demás un post magnífico.

  • Pingback: 28 trucos, tips y funciones para WordPress | spp2()

  • Muy bueno el articulo, me sirve para la pagina que estoy desarrollando,

    gracias tocayo

  • Pingback: Lista de los mejores hacks y snippets para WordPress | infotipo.com()

  • Gracias por el artículo, muy útil todos estos trucos. Una pregunta, ¿Hay alguna forma de poner html en la bio del autor que se muestra al final de los posts? Gracias

  • Gracias excelentes consejos.

  • no me anda el punto numero 6 de tu post… puedes tener una idea de porque? gracias

  • ¿Qués es wordpress?
    Que tonto no entiendo nada aqui, deberíanexplicarlo mejor

  • Christian

    Muy buenos los consejos, me gustaria preguntarles como puedo poner en la parte de arriba la barra de botones de las redes sociales como tienen ustedes en su web, gracias

  • Pingback: 30 trucos, funciones y tips para WordPress | Trazos Web | Taller básico para la creación de sitios web Dinámicos()

  • Pingback: 30 trucos, funciones y tips para WordPress | Trazos Web | Taller básico para la creación de sitios web Dinámicos()

  • Marc

    Muchas gracias! Magnífica información!! 😀

  • Cuando me recomendaron WordPress para hacer un blog nunca pensé que tuviera tantísimas posibilidades de personalización.

  • Pingback: Añadir logo personalizado al panel de administración de WordPress « Ronald Gavarrete()

  • fabricio

    Hola, muy buen post!!

    consulta: como puedo sacar o cambiar el logo de WP que aparece a la izquierda del titulo del blog?
    desde ya, muchas gracias

    f