English Português

Esta la segunda parte con 10 nuevos códigos útiles para WordPress (ver parte I) para mejorar la usabilidad, estética o funcionamiento de tu blog con WordPress.

1. Agregar un campo para Twitter al perfil del autor

codigo-twitter-wordpress

Cuando te registras o registrar a un nuevo autor / usuario en WordPress hay campos para información diversa (msn, google talk, e-mail, etc), sin embargo dejan fuera a Twitter, muy popular entre bloggers. Pero gracias a Joost de Valk puede agregar un campo para esta información de manera sencilla.

Agrega la siguiente función al archivo functions.php de tu tema:

function add_twitter_contactmethod( $contactmethods ) {
// Agrega Twitter
$contactmethods['twitter'] = 'Twitter';

// Borra Yahoo IM
 unset($contactmethods['yim']);   return $contactmethods;
}
add_filter('user_contactmethods','add_twitter_contactmethod',10,1);

El código se puede agregar al archivo functions.php de nuestro tema y ya puedes agregar tu Twitter a tu perfil desde el panel.

Ahora ¿Cómo mostrarlo? En tu archivo author.php o archives.php si el primero no existe, agrega lo siguiente:

<?php the_author_meta('twitter') ?>

Donde desees que aparezca. Por si no haz actualizado, este hook funciona solo en la versión 2.9 o superior.

2. Rechazar automáticamente los comentarios que contengan ciertas palabras

WordPress tiene un filtro nativo de palabras, ip’s o url’s, lamentablemente, aun cuando un comentario coincide con estas restricciones, WP lo deja para moderación o en la carpeta de spam ocupando espacio. Para rechazar definitivamente ciertas palabras u oraciones spam, el siguiente script es una buena alternativa:

function in_comment_post_like($string, $array) {
	foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
	return false;
}
function drop_bad_comments() {
	if (!empty($_POST['comment'])) {
		$post_comment_content = $_POST['comment'];
		$lower_case_comment = strtolower($_POST['comment']);
		$bad_comment_content = array(
			'viagra',
			'hydrocodone',
			'hair loss',
			'[url=http',
			'[link=http',
			'xanax',
			'tramadol',
			'russian girls',
			'russian brides',
			'lorazepam',
			'adderall',
			'dexadrine',
			'no prescription',
			'oxycontin',
			'without a prescription',
			'sex pics',
			'family incest',
			'online casinos',
			'online dating',
			'cialis',
			'best forex',
			'amoxicillin'
		);
		if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
			$comment_box_text = wordwrap(trim($post_comment_content), 80, "n  ", true);
			$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
			fwrite($txtdrop, "  --------------n  [COMMENT] = " . $post_comment_content . "n  --------------n");
			fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");
			fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");
			fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "n");
			fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");
			fwrite($txtdrop, '--------------**********------------------'."n");
			header("HTTP/1.1 406 Not Acceptable");
			header("Status: 406 Not Acceptable");
			header("Connection: Close");
			wp_die( __('bang bang.') );
		}
	}
}
add_action('init', 'drop_bad_comments');

Coloca el código en el archivo functions.php de tu tema y agrega tus propios términos a rechazar en el array bad_comment_content.

Vía: WPRecipes

3. Usar un logo propio en la pantalla de acceso al panel de control

codigo-logo-propio

Un detalle más estético que útil, pero que puede dar un aspecto más profesional, sobre todo cuando permitimos el registro de usuarios. El código a colocar en el functions.php de tu tema es:

function logo_login() {
	echo '<style type="text/css">
		h1 a { background-image:url(http://sitio.com/logo.png) !important; }
	</style>';
}
add_action('login_head', 'logo_login');

Donde debes sustituir:

http://sitio.com/logo.png

Por la propia url de tu logo. Eso sí, seguramente tendrás que crear uno especial para esta pantalla, con dimensiones aproximadas de 330px * 70px y con fondo transparente.

4. Atrasar unos minutos la publicación de los posts en el feed rss

¿Te ha pasado que publicas un post, y una vez en línea lo corriges y en el feed los errores se mantienen? Esto lo puedes evitar si atrasas unos minutos la publicación de tus posts en el feed, por ejemplo, 10 minutos, tiempo suficiente si haces correcciones.

El atraso puedes conseguirlo agregando en tu functions.php el siguiente código:

function publish_later_on_feed($where) {
global $wpdb;

if ( is_feed() ) {
// La hora en WP-format
$now = gmdate('Y-m-d H:i:s');

// Minutos a esperar
$wait = '10'; // en números enteros

// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

Modificando el valor de la variable "wait"puedes cambiar el tiempo de espera.

vía: WP Beginner

5. Crear un botón de retweet con tu propia url corta

codigo-retweet-url

Si quieres poner un botón de retweet donde el link corto sea con tu propio dominio, este pequeño script te interesa.

1. Crea los links cortos con nuestro tutorial: URL’s cortas y estéticas en WordPress. (haciendo el paso uno es suficiente)

2. Donde quieras mostrar esta invitación a "retwitear", por ejemplo ingle.php, agrega lo siguiente:

<a href="http://twitter.com/home?status=RT+<?php the_title(); ?>+<?php echo get_bloginfo('url').'/'.get_the_ID(); ?>" title="Haz retweet">Haz retweet</a>

El cual es un enlace que lleva a twitter con el título del post, más tu propio url corta. Sin plugin ni complicaciones podemos monitorear mejor los RT’s a nuestros artículos y darles un toco más personal.

6. Mostar últimos comentarios con avatar

Esta función te permite obtener los últimos comentarios publicados en tu blog junto con el avatar del autor. Basta agregar el siguiente código a cualquier parte de la plantilla donde deseas que se muestren, por ejemplo en sidebar.php.

<?php
$comments = get_comments('status=approve&number=5');

if ($comments) {
    echo '<ul>';
    foreach ($comments as $comment) {
        $url = '<a href="'. get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">';
        echo '<li>';
        echo '<div class="img">';
        echo $url;
        echo get_avatar( $comment->comment_author_email, $img_w);
        echo '</a></div>';

        echo '<div class="txt">Par: ';
        echo $url;
        echo $comment->comment_author;
        echo '</a></div>';
        echo '</li>';
    }
    echo '</ul>';
}
?>

Modificando number=5 en el inicio del código, podemos determinar la cantidad de comentarios a mostrar.

Vía: WPRecipes

7. Deshabilitar completamente el html en los comentarios

WordPress permite un poco de html para enlaces, citas y algo de formato, en temas donde los lectores conocen este lenguaje va bien, pero en blog con temáticas poco afines al código, se deja una puerta abierta al spam.

Si por esta u otra razón quieres deshabilitar el html totalmente en los comentarios, prueba agregando el siguiente código de theblog en el functions.php de tu theme:

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {

	// convert everything in a comment to display literally
	$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);

	// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
	$incoming_comment['comment_content'] = str_replace( "'", '&apos;', $incoming_comment['comment_content'] );

	return( $incoming_comment );
}

// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {

	// Put the single quotes back in
	$comment_to_display = str_replace( '&apos;', "'", $comment_to_display );

	return $comment_to_display;
}

add_filter( 'preprocess_comment', 'plc_comment_post', '', 1);
add_filter( 'comment_text', 'plc_comment_display', '', 1);
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1);
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1);

El resultado será tener comentarios en texto plano.

8. Mostrar las categorías como una cortina desplegable.

codigo-categorias-wordpress

Una forma diferente y compacta de presentar las categorías.

<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$select = wp_dropdown_categories('show_option_none=Seleccionar categor&iacute;a&show_count=1&orderby=name&echo=0&selected=6');
$select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
echo $select;
?>
<noscript><input type="submit" value="Ver" /></noscript>
</form>

Puedes agregarlo a tu archivo sidebar.php donde quieras que aparezca.

vía: WP Beginner

9. Aumenta el tamaño de los resúmenes de tus posts

Si usas un theme estilo revista u otro, donde uses la función de resumen o "leer más" automática, puedes incrementar las 55 palabras por defecto, por la cantidad de palabras que desees con la siguiente función:

// Tamaño del resumen
function new_excerpt_length($length) {
return 100; //número de palabras por resumen
}
add_filter('excerpt_length', 'new_excerpt_length');

Agregandola en tu archivo functions.php. Cambiando "100", por la cantidad de palabras por resumen deseado.

10. Usar siempre la última versión de jQuery hospedada en Google Code

codigo-jqueryjQuery suele usarse tanto en el diseño como en la parte operativa de un sitio web, llamándolo desde WordPress; sin embargo, WP suele tardar en incorporar la última versión. Con el siguiente código siempre tendrás la versión más reciente de jQuery hospedado en Google Code:

if( !is_admin()){
   wp_deregister_script('jquery');
   wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '');
   wp_enqueue_script('jquery');
}

Vía: WPRecipes

Escrito por Francisco Oliveros

Soy un gran aficionado del diseño y de todo lo que el código puede comunicar. Ingeniero mecánico por profesión, pero dedicado al desarrollo web a tiempo completo.

Blog / Twitter

Artículos relacionados

Sigue leyendo consejos, tips y tutoriales para tu blog.

    Comentarios

    1. Evelyn / Hace 7 años /

      Orale muy buenos, habrá q ir poniéndolos en práctica pronto, aún no he podido darle forma a mi blog hehe (mucho q hacer)

      Cuidate!

      Responder a Evelyn →
    2. Francisco / Hace 7 años /

      Evelyn, pues a darle, que ahora tiene un blog más que mantener 😛

      Responder a Francisco →
    3. Nachitox / Hace 7 años /

      Se pasaron con el tuto, personalmente quiero aplicar lo del retweet con url’s cortas, muy bueno el truco.

      Muchísimas gracias, y saludos.

      Responder a Nachitox →
    4. Fernando Callo / Hace 7 años /

      Muy buenos, pero no me gustó el hecho de que no pusiste un “Read More”, la página principal se ve demasiado llena y n ose distingue cuando empieza otro artículo porque hay muchos subtitulos después de los títulos.

      Responder a Fernando Callo →
    5. Fernando Callo / Hace 7 años /

      No me funciona el de cambiar el logo en el admin =S. Es la 20ava vez que no me funciona un hacking en el functions.php

      Responder a Fernando Callo →
    6. David / Hace 7 años /

      donde encuentro sidebar.php?

      Responder a David →
    7. Francisco / Hace 7 años /

      @ Nachitox Es un detalle pero a mi me agrade bastante 🙂

      Responder a Francisco →
    8. Francisco / Hace 7 años /

      @Fernando, gracias por las recomendaciones. ¿Qué WordPress usas? Si es el más actual, no hay problemas con el hook. Se cierran bien las etiquetas php?

      Responder a Francisco →
    9. Francisco / Hace 7 años /

      @David en /wp-content/themes/nombre-de-tu-theme/ por ftp.

      Responder a Francisco →
    10. perro linuxero / Hace 7 años /

      excelente los minitutos. Gracias y muy bueno el theme de tu blog….me dirias como se llama?

      Responder a perro linuxero →
    11. Francisco / Hace 7 años /

      @perro Es un diseño propio que hice por los dos años de mi blog, precisamente hace casi un año. Saludos!

      Responder a Francisco →
    12. Sebastian / Hace 7 años /

      a mi barra de marcadores muy buen post gracias

      Responder a Sebastian →
    13. Sebastian / Hace 7 años /

      hola francisco el de twitter me da error

      Responder a Sebastian →
    14. Francisco / Hace 7 años /

      @Sebastian, ya he actualizado el código, ahora debe funcionar. Un saludo!

      Responder a Francisco →
    15. @sebasxnco / Hace 7 años /

      sigue dando problemas lo de twitter

      Responder a @sebasxnco →
    16. Francisco / Hace 7 años /

      @sebasxnco Cual de twitter exactamente? Aunque de los dos que mencionan a twitter en el post los tengo instalados y funcionando acá en Blog and Web, dime y quizá es algo que no explique bien.

      Saludos!

      Responder a Francisco →
    17. vida seo / Hace 7 años /

      Se me ha ocurrido hacer lo que comentabas de añadir un código en el archivo functions.php de mi plantilla y ahora no se como recuperar mi blog.

      Me indica lo siguiente:
      Parse error: syntax error, unexpected T_ARRAY, expecting ‘)’ in /homepages/24/d318921109/htdocs/wp-content/themes/fusion/functions.php on line 22

      He accedido por FTP y he quitado el código, volviendo el archivo functions.php a como estaba antes, pero no hay nada que hacer.

      ¿alguien me podría ayudar? No se como recuperar el blog.

      Gracias!

      Responder a vida seo →
    18. Francisco / Hace 7 años /

      @vidaseo Por lo que veo, lo pegaste dentro de un condicional o algo, porque dice que hay un paréntesis de más.

      Hay que guardar la sintaxis de php, sino dará error.

      Responder a Francisco →
    19. @sebasxnco / Hace 6 años /

      @Francisco una pregunta hay algun tutorial de como hacer que la url corta sea como por ejemplo

      yo tengo misitio.com y la direccion de las urls cortas quiero que sea msti.co/idurl

      Responder a @sebasxnco →
    20. Jessica / Hace 6 años /

      Exclente post, me ayudo a mejorar bastante mi blog.
      Muchas gracias.

      Responder a Jessica →
    21. johanso / Hace 5 años /

      huy, que gran aporte,, gracias de verdad me ayudo muchisimo…

      Responder a johanso →
    22. MAURICIO / Hace 5 años /

      COMO HAGO PARA CAMBIAR EL COLOR DE LAS LETRAS Y ESAS COSAS?

      Responder a MAURICIO →
    23. execiano / Hace 5 años /

      Muy buenos trucos.

      Pero como puedo hacer que en el truco 8 liste los post en un select?

      Logre hacerlo con las paginas, pero no con los post.

      Gracias por la ayuda.

      Responder a execiano →
    24. Isaac / Hace 5 años /

      Saludos, muy buen post, quería preguntarte si sabes alguna forma de colocar los metatags title y description en WordPress sin tener que instalar un plugin?

      Responder a Isaac →
    25. manuel / Hace 5 años /

      Bueno, bueno bueno. me ayudo a mejorar bastante mi blog

      Responder a manuel →
    26. Quercus Green / Hace 4 años /

      Saludos y muchas gracias Francisco.

      Muy buena entrada y magníficos códigos útiles, realmente útiles para WP.

      El 9. Aumenta el tamaño de los resúmenes de tus posts

      Es perfecto, para mí me venía mejor reducirlos, y así lo he hecho. De manera fácil y rápida.

      Lo dicho MUCHAS GRACIAS, sigue con ese buen trabajo.

      Saludos a todo el que lea esto.

      Responder a Quercus Green →
    27. edgar / Hace 4 años /

      amigo muy buena tu información, buscando a las 6 am de urgencia unos codigos de wp y los encontre. Muy bueno.
      Lo que note es que en la lista de palabras spam lo que es más bien es una lista de farmacos de tipo opiaceo y benzodiacepinas, lo digo porque soy adicto a casi todas las que escribiste pero mas al tramadol y al xanax pero te falto el Ritalin o Concerta mi favorito. (es una anfetamina)

      ni modo………

      Responder a edgar →

    Responder

    ¡Gracias por dejar tu opinión! Por favor procura que tus comentarios estén dentro tema, que no sean promocionales (spam), ilegales u ofensivos, de otro modo, serán borrados. Todos los enlaces serán moderados y la URL indicada NO será enlazada.

    Blog and Web es un blog de Blógstica. Hospedado desde 2008 en Liquid Web.

    Términos de uso - Política de privacidad