23Nov 2011 5 Comments */?>

12 hacks de WordPress que te van a volar la cabeza!

Categorías: Tips de wordpress, Tutoriales, Wordpress - Tags:

Hoy les traigo una recopilación de Hacks o Tips de WordPress impresionante. Algunos son conocidos y otros no tanto pero me pareció bueno juntarlos todos. Porque no me cuentan que hacks de wordpress usan ustedes?

Crear un link que muestras todas las opciones de tu sitio WordPress

Este pequeño tip de wordpress te va a crear un nuevo link en tu menu Settings / Preferencias que automáticamente te va mostrar todas las opciones de tu instalación wordpress tal y como aparecen en tu base de datos.

Cuidado

Lo que modifiquen en esta página puede afectar su sitio de WordPress

1
2
3
4
  function mqw_all_settings() {
    add_options_page(__('Opciones Wordpress'), __('Opciones Wordpress'), 'administrator', 'options.php');
   }
   add_action('admin_menu', 'mqw_all_settings');

Quitar los mensajes de Actualizaciones de WordPress para los usuarios que no son Admins

1
2
3
4
5
6
    global $user_login;
    get_currentuserinfo();
    if (!current_user_can('update_plugins')) { // checks to see if current user can update plugins 
        add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
        add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
    }

Mostrar consumo de memoria, consultas SQL y tiempo empleado en el footer de tu WordPress

Con esta función pueden mostrar esos detalles. Tengan en cuenta que su theme tiene que contar con
Por defecto lo muestra como comentario HTML, pueden mostrarlo al publico cambiando el valor de visible por true.

1
2
3
4
5
6
7
8
9
10
11
function mqw_performance( $visible = false ) {
 
    $stat = sprintf(  '%d queries in %.3f seconds, using %.2fMB memory',
        get_num_queries(),
        timer_stop( 0, 3 ),
        memory_get_peak_usage() / 1024 / 1024
        );
 
    echo $visible ? $stat : "<!-- {$stat} -->" ;
}
add_action( 'wp_footer', 'mqw_performance', 20 );

Quitar la versión de WordPress del header y feeds

No es un método de seguridad ,pero ayuda complicando un poco las cosas.

1
2
3
4
function mqw_version_removal() {
    return '';
}
add_filter('the_generator', 'mqw_version_removal');

Quitar del Dashboard / Escritorio WordPress los elementos que no quieras

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function mqw_custom_widgets() {
global $wp_meta_boxes;
 //Right Now - Comments, Posts, Pages at a glance
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
//Recent Comments
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
//Incoming Links
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
//Plugins - Popular, New and Recently updated Wordpress Plugins
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
 
//Wordpress Development Blog Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
//Other Wordpress News Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
//Quick Press Form
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
//Recent Drafts List
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
}
add_action('wp_dashboard_setup', 'mqw_custom_widgets');

Función que te permite borrar comentarios o marcarlos como spam desde el front-end

1
2
3
4
5
6
function mqw_comments_links($id) {
    if (current_user_can('edit_post')) {
        echo '| <a href="'.site_url().'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> ';
        echo '| <a href="'.site_url().'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>';
    }
}

Retrasar la publicación de tus posts WordPress a los feeds

Esto es muy útil para poder revisar bien los posts antes de que se publiquen en los feeds. Siempre se nos puede pasar algún error que veremos después de publicar nuestros artículos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function mqw_publicar_luego_feed($where) {
    global $wpdb;
 
    if (is_feed()) {
        // timestamp 
        $ahora = gmdate('Y-m-d H:i:s');
 
        // valor que deseamos esperar
        $esperar = '10'; 
 
        $unidad = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
 
        // añadir clausala SQL a Where $where
        $where .= " AND TIMESTAMPDIFF($unidad, $wpdb->posts.post_date_gmt, '$ahora') > $esperar ";
    }
    return $where;
}
add_filter('posts_where', 'mqw_publicar_luego_feed');

Añade un formulario de búsqueda del codex de WordPress en tu Dashboard / Escritorio

Ideal para los programadores que consultan el Codex de WordPress constantemente como hago yo.

1
2
3
4
5
6
7
8
9
function mqw_codex_search_form() {
    echo '<form target="_blank" method="get" action="http://wordpress.org/search/do-search.php" class="alignright" style="margin: 11px 5px 0;">
        <input type="text" onblur="this.value=(this.value==\'\') ? \'Buscar en el Codex\' : this.value;" onfocus="this.value=(this.value==\'Buscar en el Codex\') ? \'\' : this.value;" maxlength="150" value="Buscar en el Codex" name="search" class="text"> <input type="submit" value="Go" class="button" />
    </form>';
}
 
if( current_user_can( 'manage_plugins' )) {
    add_filter( 'in_admin_header', 'mqw_codex_search_form', 11 );
}

Añadir el excerpt a las página de WordPress

La introducción o excerpt que aparece en las entradas de tu blog WordPress también se pueden añadir a las páginas , en caso de que muestres varias y solo quieras mostrar los extractos.

1
2
3
4
5
6
7
8
if ( function_exists('add_post_type_support') ) 
{
    add_action('init', 'add_page_excerpts');
    function add_page_excerpts() 
    {        
        add_post_type_support( 'page', 'excerpt' );
    }
}

Añadir campos personalizados a tu perfil de WordPress

Puedes añadir cuantos quieras con la siguiente función.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 function mqw_perfil_extra( $contactmethods ) {
 
    // Campos de contacto
    $contactmethods['contact_phone_office']     = 'Tel Oficina';
    $contactmethods['contact_phone_mobile']     = 'Tel Movil';
    $contactmethods['contact_office_fax']       = 'Fax';
 
    // Direcciones
    $contactmethods['address_line_1']       = 'Dirección ';
    $contactmethods['address_line_2']       = 'Dirección 2 ';
    $contactmethods['address_city']         = 'Ciudad';
    $contactmethods['address_state']        = 'Provincia';
    $contactmethods['address_zipcode']      = 'Zip';
 
    //Para quitar los que no queremos
    unset($contactmethods['aim']);  
    unset($contactmethods['jabber']);  
    unset($contactmethods['yim']); 
    return $contactmethods;
  }
   add_filter('user_contactmethods','mqw_perfil_extra',10,1);

Desactivar las notificaciones de actualización en plugins inactivos

A mi personalmente me molestan los númeritos de que tengo 3 actualizaciones tanto como que tengo 3 emails sin responder. Con este código podrán quitar las notificaciones de los plugins WordPress que tienen desactivados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function update_active_plugins($value = '') {
 
 
    if ((isset($value->response)) && (count($value->response))) {
 
        $active_plugins = get_option('active_plugins');    
        if ($active_plugins) {
 
            foreach($value->response as $plugin_idx => $plugin_item) {
 
                if (!in_array($plugin_idx, $active_plugins))
                    unset($value->response[$plugin_idx]);
            }
        }
        else {
 
            foreach($value->response as $plugin_idx => $plugin_item) {
                unset($value->response);
            }          
        }
    }  
    return $value;
}
add_filter('transient_update_plugins', 'update_active_plugins');    // Hook para WP 2.8.+
//add_filter( 'option_update_plugins', 'update_active_plugins');    // Hook para WP 2.7.x

Crear un Shortcode de WordPress que te devuelve TinyUrls

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function mqw_shortcode_tinyurl($atts){
  extract(shortcode_atts(array(
   'url' => get_permalink(),
   'title' => '',
   'rel' => 'nofollow'
  ), $atts));
  if(!$title) $title = $url;
 
  if (FALSE === ($cache = get_transient('tinyurl_'+md5($url)))):
    $cache = wp_remote_retrieve_body(wp_remote_get('http://tinyurl.com/api-create.php?url='.$url));
 
    set_transient('tinyurl_'+md5($url), $cache, 60*60*24); // 1 day cache, could be incresed
  endif;
 
  return '<a href="'.esc_url($cache).'" rel="'.esc_attr($rel).'">'.esc_attr($title).'</a>';
}
add_shortcode('tinyurl', 'mqw_shortcode_tinyurl');

Para usarlo en un post:

1
[tinyurl]

Para usarlo con otra url:

1
[tinyurl url="http://www.masquewordpress.com/ayuda" title="Ayuda Wordpress"]

Espero que lo hayan disfrutado.Saludos!!!!

Damián Logghe

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. WordPress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

  • Antes que nada gracias por todo el aporte, solo queria hacerte una consulta, yo estoy armando mi blog como para ir practicando un poco y lo que estoy necesitando es que la gente se pueda registrar al blog pero cuando ingresen solo puedan editar su perfil para luego comentar y demas.

    El tema que al ingresar con su usario no quiero que vea ni el escritorio, ni el wordpress que esta arriba y abajo en el pie. Basicamene que solo pueda editar su perfil.

    Por otro lado luego quisiera exportar los datos de todos los registrados, esto se puede hacer?

    Perdon si son preguntas tontas pero soy muy nuevo en esto de wordpress.

    Si queres te dejo el blog para que te registres y lo veas, obiamente hay dos publicaciones de prueba. http://www.mirsistemas.com/blog cualqueir otro consejo es bienvendio!!!

    Desde ya muchas gracias por adelantado.

  • Abc

    Para eliminar mensaje de actualización de versión wp 3.4 en “no admins”:

    add_action(‘admin_init’, ‘hide_message’);function hide_message($matches) { global $userdata; if(get_option(‘sumit_users’)==’users’): if (!current_user_can(‘update_plugins’)): remove_action(‘admin_notices’, ‘update_nag’, 3); endif; elseif(get_option(‘sumit_users’)==’ausers’): remove_action(‘admin_notices’, ‘update_nag’, 3); else: if (!current_user_can(‘update_plugins’)): remove_action(‘admin_notices’, ‘update_nag’, 3); endif; endif;}

  • Abc


    add_action('admin_init', 'hide_message');function hide_message($matches) { global $userdata; if(get_option('sumit_users')=='users'): if (!current_user_can('update_plugins')): remove_action('admin_notices', 'update_nag', 3); endif; elseif(get_option('sumit_users')=='ausers'): remove_action('admin_notices', 'update_nag', 3); else: if (!current_user_can('update_plugins')): remove_action('admin_notices', 'update_nag', 3); endif; endif;}

  • Contact

    Disculpen mi ignorancia; pero donde copio los codigos??

  • Pingback: Como retrasar la publicación de tus feeds | SEO en tu Web()