Estuve mucho tiempo con la idea de crear un post de este tipo. Estos snippets, pequeñas partes reusables de código fuente, son de gran utilidad en el día a día de cualquier persona que administre o instale WordPress.
Primero vamos a definir que son los hacks para los muchachos que no esten al tanto.
Hacks: pequeñas modificaciones y/o agregados que añadirán / eliminarán / modificarán una funcion y/o utilidad de tu aplicación, en este caso WordPress.
Eliminar borradores
Los borradores son utiles para el proceso de escritura, pero cada tanto necesitas limpiar tu base de datos de ellos. Acá hay una sencilla forma de borrarlos todos.
Nota: No borra posts programados ni publicados, SOLO borradores. Un dato extra: la última vez que lo hice mi DB perdió 2MB de peso.
Abre tu archivo functions.php y copia el siguiente código:
1 |
$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_type = 'revision'" ); |
Ahora guarda el archivo y abre la página de inicio de tu blog para ejecutar el código. Una vez hecho no hay necesidad de seguir teniendo este snippet en nuestro código, así que luego de un uso deberían borrarlo.
Quitar el efecto «temblar» cuando un error de acceso ocurre
¿No te gusta el efecto temblar que aparece cuando hay un error de acceso? Acá hay un sencillo snippet que lo quitará.
Sólo pega el siguiente código en tu functions.php:
1 2 3 4 |
function wps_login_error() { remove_action('login_head', 'wp_shake_js', 12); } add_action('login_head', 'wps_login_error'); |
Como agregar <p> automaticamente
Por defecto WordPress agrega automaticamente los <p> al contenido utilizando la función wpautop(). Si necesitas agregarle los parrafos a tus textos, podes usar esta función.
Para agregar etiquetas <p> a cualquier texto en nuestro WordPress, sólo usamos la función wpautop() como se muestra en el código inferior:
1 2 3 4 |
$mi_texto = 'Lorem ipsum dolor sit amet consectetur adipiscing elit. Nulla pretium libero eget gravida rutrum.'; echo wpautop($mi_texto); |
Como limpiar el header sin plugins
WordPress agrega muchas cosas al header en la mayoría de los themes. Algunas de estas cosas son utiles pero otras no tanto. Este snippet te permitirá limpiarlo sin necesidad de plugins:
Copiar las siguientes lineas en tu archivo functions.php:
1 2 3 4 5 6 7 |
remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'start_post_rel_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'adjacent_posts_rel_link' ); remove_action( 'wp_head', 'wp_shortlink_wp_head' ); |
Redireccionar a una página especifica después de registrarse
Acá tenemos un snippet muy útil, nos permite redireccionara a una página personalizada a nuestros usuarios luego de terminar su registro en nuestro blog. Escencial para quienes usan WordPress como un CMS.
Podes agregarlo a tu archivo functions.php o a un plugin:
1 2 3 4 |
function __my_registration_redirect(){ return home_url( '/my-page' ); } add_filter( 'registration_redirect', '__my_registration_redirect' ); |
Forzar páginas especificas a usar SSL
Si SSL esta habilitado en tu servidor, definitivamente deberías usarlo para proteger tu blog. Activar SSL en algunas de las páginas de tu blog es muy simple.
Sólo agrega el siguiente snippet a tu archivo functions.php y especifica el ID de la entrada o página que quieres que siempre sea segura. En este ejemplo usamos el ID 25.
1 2 3 4 5 6 7 |
function wps_force_ssl( $force_ssl, $post_id = 0, $url = '' ) { if ( $post_id == 25 ) { return true } return $force_ssl; } add_filter('force_ssl' , 'wps_force_ssl', 10, 3); |
Configurar diferentes idiomas en el admin y el tema
Si estas blogueando en un lenguaje el cual no es tu lengua madre, quizá te gustaría por lo menos tener tu panel de administración en tu lenguaje. Acá hay un snippet para poder configurar diferentes lenguajes en tu WordPress.
Sólo agrega el lenguaje deseado en la linea 6 y luego copialo en tu archivo functions.php:
1 2 3 4 5 6 7 8 9 10 11 |
<?php // setup one language for admin and the other for theme // must be called before load_theme_textdomain() function set_my_locale($locale) { $locale = ( is_admin() ) ? "en_US" : "it_IT"; setlocale(LC_ALL, $local ); return $locale; } add_filter( 'locale', 'set_my_locale' ); ?> |
Enlazar Twitters automaticamente
¿Estas usando mucho Twitter?, con este snippet tus post enlazarán automaticamente (con rel=»nofollow» las referencias a cuentas de Twitter que hagas en tu blog. Por ejemplo si en este post pusiera @Gamarodweb se crearía automaticamente un enlace a mi Twitter :). Funciona en entradas, páginas y comentarios (para eliminar la función de los comentarios sólo quitar la última linea).
Pega el código inferior en tu archivo functions.php:
1 2 3 4 5 6 7 |
function twtreplace($content) { $twtreplace = preg_replace('/([^a-zA-Z0-9-_&])@([0-9a-zA-Z_]+)/',"$1<a href=\"http://twitter.com/$2\" target=\"_blank\" rel=\"nofollow\">@$2</a>",$content); return $twtreplace; } add_filter('the_content', 'twtreplace'); add_filter('comment_text', 'twtreplace'); |
Marcar como spam cualquier comentario con una URL larga
El spam es definitivamente un probema para los bloggers. La mayoría de ustedes seguro recibe más de 100 comentarios spam por día. Acá hay un Snippet que marcará automaticamente como spam todos los comentarios que lleven una URL con más de 50 caracteres.
Pega este código en tu functions.php:
1 2 3 4 5 6 7 8 9 |
<?php function rkv_url_spamcheck( $approved , $commentdata ) { return ( strlen( $commentdata['comment_author_url'] ) > 50 ) ? 'spam' : $approved; } add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 ); ?> |
Eso es todo, espero les haya sido de utilidad.
Si hay 20 twitts, publico la parte 2 🙂