Skip to content

Instantly share code, notes, and snippets.

@davilera
Last active February 16, 2016 07:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davilera/8581eeceb351c6f8fe92 to your computer and use it in GitHub Desktop.
Save davilera/8581eeceb351c6f8fe92 to your computer and use it in GitHub Desktop.
Ejemplos de hacks sencillos que puedes realizar en tu instalación WordPress para personalizarla

Ejemplos de Hacks sencillos para WordPress.

<?php
/**
* Plugin Name: Mis Funciones Personales
* Plugin URI: http://tupaginaweb.com
* Description: Pequeño plugin en el que meto todas las funcionalidades que me interesan.
* Author: Tu Nombre Aquí
* Author URI: http://tupaginaweb.com
* Version: 0.1.0
*/
// Tu código a continuación...
<?php
/**
* Añade mi logo en la página de login.
*
* @sine 0.1.0
*/
function wprin_my_logo_on_login() {
// Pon el path a tu imagen.
$image = get_bloginfo( 'template_directory' ) . '/images/custom-login-logo.gif';
echo '<style type="text/css">h1 a { background-image:url(' . $image . ') !important; }</style>';
}//end wprin_my_logo_on_login()
add_action( 'login_head', 'wprin_my_logo_on_login' );
<?php
/**
* Mantén la sesión por un año.
*
* @param int $expire duración por defecto.
* @return int devuelve la nueva duración (en segundos).
*
* @sine 0.1.0
*/
function wprin_stay_logged_in_for_one_year( $expire ) {
// Un año en segundos: 365 d/a * 24h/d * 60m/d * 60s/m
return 31536000;
}//end wprin_stay_logged_in_for_one_year()
add_action( 'auth_cookie_expiration', 'wprin_stay_logged_in_for_one_year' );
<?php
/**
* Modifica el footer del escritorio de WordPress.
*
* @sine 0.1.0
*/
function wprin_custom_text_in_footer_admin() {
return 'Tu texto aquí';
}//end wprin_custom_text_in_footer_admin()
add_action( 'admin_footer_text', 'wprin_custom_text_in_footer_admin' );
<?php
// Reduce el número de revisiones por entrada a 3:
define( 'WP_POST_REVISIONS', 3 );
<?php
// Aumenta el intervalo de auto-guardados a 5 minutos (300 segundos).
define( 'AUTOSAVE_INTERVAL', 300 );
<?php
/**
* Modifica la condición de selección de entradas para excluir aquellas que lleven
* menos de 60 minutos publicadas, pero únicamente cuando la selección se realice
* para generar el canal RSS.
*
* @param string $where condición de selección de las entradas que aparecen en mi canal.
* @return nueva condición de selección de las entradas que aparecen en mi canal.
*
* @sine 0.1.0
*/
function wprin_delay_rss_after_publish( $where ) {
global $wpdb;
if ( is_feed() ) {
$now = gmdate( 'Y-m-d H:i:s' );
$wait = '60';
$device = 'MINUTE';
$where .= " AND TIMESTAMPDIFF( $device, $wpdb->posts.post_date_gmt, '$now' ) > $wait ";
}
return $where;
}//end wprin_delay_rss_after_publish()
add_action( 'posts_where', 'wprin_delay_rss_after_publish' );
<?php
/**
* Cuando la query es una búsqueda, sólo devuelve las entradas del blog,
* excluyendo cualquier página o entrada personalizada de la lista de
* resultados.
*
* @param object $query condición de selección de las entradas a devolver en la búsqueda.
* @return nueva condición de selección donde se especifica que sólo se deben devolver entradas ("post").
*
* @sine 0.1.0
*/
function wprin_exclude_pages_from_search( $query ) {
if ( $query->is_search && ! is_admin() ) {
$query->set( 'post_type', 'post' );
}
return $query;
}//end wprin_exclude_pages_from_search()
add_action( 'pre_get_posts', 'wprin_exclude_pages_from_search' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment