10 Códigos Útiles Para WordPress Que Puedes Añadir A Functions.Php

9 Códigos útiles para WordPress que puedes añadir a Functions.php

9 códigos útiles para WordPress para mejorar la usabilidad, estética o funcionamiento de tu blog con WordPress.
[post-views]

Hoy te traigo estos 10 Code Snippets útiles para WordPress para mejorar la usabilidad, estética o funcionamiento de tu blog con WordPress.

Si no sabes que es un Snippet, visita esta página para que veas la explicación detallada. Los snippets son muy utilizados en WordPress y sería genial que aprendas a utilizarlos.

1. Agregar un campo para Twitter al perfil del autor

9 Códigos útiles para WordPress que puedes añadir a Functions.php
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 nos enseña este truco en su blog. Con este código, se puede agregar un campo para añadir 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. Funciona desde la versión 2.9 en adelante.

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.

3. Cambiar el logo en la página de Login

9 Códigos útiles para WordPress que puedes añadir a Functions.php

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(https://sitio.com/logo.png) !important; } </style>'; } 
add_action('login_head', 'logo_login');

Sustituye https://sitio.com/logo.png por la URL de tu logotipo.

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. Retrasar 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 

// https://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.

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

10 Códigos útiles para WordPress que puedes añadir a Functions.php

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

  • Donde quieras mostrar esta invitación a «retwitear», por ejemplo single.php, agrega lo siguiente:
<a href="https://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 toque más personal.

6. Mostrar ú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="'.%20get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID%20.'" 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.

7. Deshabilitar completamente el html en los comentarios

De forma predeterminada, WordPress permite ciertas etiquetas en los comentarios. Por lo tanto, los comentaristas pueden agregar enlaces, aplicar estilo al texto en negrita y cursiva, agregar tablas y más. Esto puede resultar muy útil.

Desafortunadamente en blogs 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 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 );
// This stops WordPress from trying to automatically make hyperlinks on text:
remove_filter( 'comment_text', 'make_clickable', 9 );

El resultado será tener comentarios en texto plano.

8. Aumenta el tamaño del extracto 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.

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

10 Códigos útiles para WordPress que puedes añadir a Functions.phpjQuery 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.

if( !is_admin()){ 
wp_deregister_script('jquery'); 
wp_register_script('jquery', 
("https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, ''); 
wp_enqueue_script('jquery'); }
Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
Telegram
Reddit
Publicado por:
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept