Cuando trabajamos con home y página de entradas estáticas el obtener la url de la página de noticias funciones como site_url o home_url. Para resolver el problema podemos utilizar la siguiente función:
/**
* Recupera la url de la página de blog
*/
if(!function_exists('iuttu_get_blog_page_url')){
function iuttu_get_blog_page_url(){
return get_permalink(get_option('page_for_posts'));
}
}
Un widget de texto es la solución para casi cualquier necesidad que tengamos en nuestro sidebar. Lamentablemente, no evalúa los shortcodes que escribamos en la caja de texto.
Para solucionarlo sólo debemos añadir la siguiente línea a nuestro fichero functions:
add_filter('widget_text', 'do_shortcode');6 noviembre, 2011 – 16:02
Después de mucho tiempo de utilizar el fantástico script de calendario creado por Aeron Glemann (que funciona con Mootools), ha llegado Internet Explorer 9 y la revisión de una web en el mismo… y al comprobar el funcionamento de la misma, vemos que el javascript nos tira un error: SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5). Al parecer, IE9, cumple demasiado extrictamente los estandards, y al parecer mootools (versión 1.2.4) utiliza una forma de crear elementos que no gusta a IE9, por lo que lo único que tenemos que hacer es transformar las creaciones de elementos como esta:
var test = new Element("div", {"id":"text"});a la forma más lenta:
var test = new Element("div");
test.setAttribute("id", "text");y ya funcionará…
Podéis descargaros el código de aquí
Es habitual utilizar la Options API para almacenar información de nuestros plugins, pero en ocasiones nos interesa además guardar información adicional de alta volatilidad. Transients API nos ofrece tres sencillos métodos para guardar valores en caché (inicialmente en base de datos).
Recientemente hemos desarrollado para uno de nuestros clientes un widget que, además de otras acciones, muestra las últimas entradas de un feed externo. Para minimizar los accesos hemos decidido utilizar la Transients API. El método widget sería similar a este:
function widget( $args, $instance ) {
extract( $args, EXTR_SKIP );
if ( false === ( $result = get_transient( $this->id ) ) ) {
/*
Código que genera el HTML del widget y lo guarda en la variable $result
*/
set_transient( $this->id, $result, 60*60*24 );
}
echo $result;
}La función get_transient( $transient ) devuelve el valor almacenado con la clave $transient o falso si no existe. set_transient( $transient, $value, $expiration ) nos permite almacenar el valor $value en la clave $transient durante $expiration segundos (24h) en el ejemplo.
Podemos eliminar el valor almacenado en caché mediante la función delete_transient( $transient ), al actualizar las opciones del plugin por ejemplo:
function update($new_instance, $old_instance) {
$instance = $old_instance;
/*
Código para actualizar la instancia del plugin
*/
delete_transient($this->id);
return $instance;
}
Trabajando con filtros de WordPress nos encontramos habitualmente con casos en los que simplemente queremos activar/desactivar una funcionalidad. WordPress nos facilita el trabajo ofreciendo funciones que devuelven valores básicos útiles:
- __return_true: Devuelve un booleano con el valor cierto
- __return_false : Devuelve un booleano con el valor falso
- __return_zero: Devuelve un cero
- __return_empty_array: Devuelve un array vacío
Imaginemos por ejemplo que nos interesa validar cualquier tipo de nombre de usuario. Podríamos utilizar el siguiente código para que el resultado del filtro siempre fuera cierto:
add_filter( 'validate_username', '__return_true');