Contenido

10 estilos para el plugins wp-PageNavi

25 sep

+ 2

Si eres un usuario de WP-PageNavi en tu WordPress, quizás uno de estos estilos harán que mejoren la estética de la paginación de tu blog.[Demos]

Booking Calendar, reservas online sobre WordPress

24 sep

+ 4

Booking Calendar es un plugin para WordPress que nos permite administrar un gestor de reservas online usando un WordPress como plataforma. Se trata de añadir la capacidad de gestionar reservas de periodos al puro estilo páginas de reservas de noches de hotel.

booking-calendar
(Ver Imagen)

Como podemos ver, se trata de mostrar al usuario un calendar y un formulario para pedirles una serie de datos necesarios para asociarlos a la reserva.

booking-calendar-admin
(Ver Imagen)

Instalación

Al igual que todos los plugins de WordPress, hemos de seguir unos simples pasos, comunes a todos los plugins.

  1. Descargamos el fichero
  2. Descomprimimos y subimos a nuestro wp-content/plugins/
  3. Activamos el plugins desde el panel de administración.
  4. Configuramos las opciones propias del plugins
  5. Lo disfrutamos :D

Configuración

Tenemos disponible 2 opciones, una versión FREE, límitada en funcionalidades, y una versión comercial a un precio de $99, en la versión FREE nos encontramos con este panel de configuración donde podemos cambiar algunas de las opciones que el plugin límitado nos ofrece.

booking-calendar-admin-options
(Ver Imagen)

Como usarlo

Su uso es tan simple que únicamente tendremos que añadirlo en nuestros artículos pulsando un botón que aparecerá nuevo en el panel de opciones del editor enriquecido.

booking-calendar-admin-insert
(Ver Imagen)

Realmente un plugin excelente para gestionar un pequeño hotel rural, o una casa que querámos alquilar…

Nueva funcionalidad de WordPress 2.9 en la edición de imágenes

11 sep

+ 8

En Carrero veo unas de las nuevas novedades que nos encontraremos en WordPress 2.9, y después en Wpengineer me encuentro unas imagenes que muestran lo que podremos hacer con las imágenes una vez subidas a nuestro WordPress.

wp-image-edit2
(Ver Imagen)

Más control sobre nuestras imágenes haciendo posible que no dependamos de ningún editor de imágenes instalado en casa.

35 plugins jQuery para mejorar tu WordPress

9 sep

+ 4

¿Que puede pasar si juntamos algunos de los mejores plugins de jQuery y los añadimos a nuestro blog? Pues lo podemos probar fácilmente con estos 35 plugins para mejorar nuestro WordPress.

Reduce el consumo de memoria de tu WordPress

8 sep

+ 30

En WebJawns.com publicaron hace unas semanas una forma fácil de reducir el consumo de memoria de WordPress. Al parecer inicialmente usando únicamente eAccelerator obtenía unos resultados de aproximadamente un 57% menos de consumo de memoria, osea de 14MB lograba reducir el consumo a 8M.

wp-memory-usage-with-zend-optimizer
(Ver Imagen)

Trás unas pruebas más, y midiendo los datos con el plugin TPC! Memory Usage nos muestra una mejoría del 90% en cuanto a consumo de memoria de WordPress.

La solución pasó por unir la mejoría de eAccelerator a la potencia de Zend Optimizer, ¿Alguien ha probado algo similar?

Comprobando si un plugin está activo en WordPress

7 sep

+ 0

WP-Engineer, muestra un interesante código que nos permite comprobar si un plugin está activo o no. Ideal para reusar código de otros plugins desde los nuestros.

// Cargamos todos los plugins activos
$plugins = get_option('active_plugins');

// Plugin que deseamos comprobar
$required_plugin = 'debug_queries/debug_queries.php';

// booleano que activamos si el plugin está activo
$debug_queries_on = FALSE;

// Comprobamos que el plugin está entre los activos.
if ( in_array( $required_plugin , $plugins ) ) {

 // Activamos el booleano en caso de estar activo.
 $debug_queries_on = TRUE;
}

Muy interesante y práctico.

11 consejos para proteger el panel de administración de tu WordPress

23 ago

+ 2

Hace unos días, en IncubaWeb hicieron una traducción de un artículo de WP-Beginner en el que nos muestran una serie de consejos para añadir un poco más de seguridad a nuestro WordPress. Son consejos muy sencillos que cualquiera puede implementar y disfrutar.

Short URL, plugin para crear mini URL’s en tu WordPress

13 ago

+ 10

Con la llegada de Twitter y la limitación de carácteres se han puesto de moda las mini URL’s. Estas mini URL’s permiten tener una URL funcional pero en un menor tamaño (de carácteres).

Con Short URL, podrás disponer de esta funcionalidad directamente en tu WordPress, usando tu dominio como mini URL.

screenshot-1
(Ver Imagen)

Instalación

  1. Sube el fichero short-url.php a /wp-content/plugins/short-url-plugin/
  2. Sube el fichero u.php a la raiz de tu WordPress.
  3. Activa el plugin desde el panel de administración.
  4. Entra en Plugins > ShortURL para configurar los permalinks.
  5. Tus miniURL’s tendrán este aspecto http://www.yourdomain.com/u/5

Descargar

Puedes descargarlo directamente desde aquí.

Limit login, limita el número de logins de tu blog

15 jul

+ 5

Donncha, publica un interesante artículo en el que nos cuenta un problema que muchos hemos tenido.

limit-logins
(Ver Imagen)

Comenta que lleva unos días recibiendo peticiones de logueo desde una misma IP, gracias a un script que está usando recibe un aviso de intento de login cada vez que alguien intenta acceder a su blog:

if ( ( isset( $HTTP_RAW_POST_DATA ) || !empty( $_POST ) ) && $_SERVER[ 'REQUEST_URI' ] != '/wp-cron.php?doing_wp_cron' && $_SERVER[ 'SCRIPT_NAME' ] != '/wp-comments-post.php' && substr( $_SERVER[ 'REQUEST_URI' ], -10 ) != '/trackback' && substr( $_SERVER[ 'REQUEST_URI' ], -11 ) != '/trackback/' ) {
 mail( "MYEMAIL@gmail.com", $_SERVER[ 'HTTP_HOST' ] . " POST request: " . $_SERVER[ 'REMOTE_ADDR' ], "URL: {$_SERVER[ 'REQUEST_URI' ]}\nPOST: " . print_r( $_POST, 1 ) . "\nCOOKIES: " . print_r( $_COOKIE, 1 ) . "\nHTTP_RAW_POST_DATA: $HTTP_RAW_POST_DATA" );
}

Despues de mucho buscar, ha encontrado un plugin (Limit Loggin Attemps) que permite definir el número de intentos de login previos al bloqueo de la IP que intenta acceder. Sin duda se trata de una gran herramienta.

10 shortcodes para hacerte la vida más fácil con WordPress

28 jun

+ 12

Hemos visto varias veces lo que son los shortcodes y la capacidad que tienen de extender nuestros posts. Mediante una nomenclatura sencilla y cómoda de usar podemo hacer que el trabajo de publicar en nuestro blog sea más sencillo, con estos 10 shortcodes que he encontrado en CatsWhoCode algo más sencillo seguro que lo será:

1) Artículos relacionados

function related_posts_shortcode( $atts ) {
	extract(shortcode_atts(array(
	    'limit' => '5',
	), $atts));

	global $wpdb, $post, $table_prefix;

	if ($post->ID) {
		$retval = '<ul>';
 		// Get tags
		$tags = wp_get_post_tags($post->ID);
		$tagsarray = array();
		foreach ($tags as $tag) {
			$tagsarray[] = $tag->term_id;
		}
		$tagslist = implode(',', $tagsarray);

		// Do the query
		$q = "SELECT p.*, count(tr.object_id) as count
			FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id  = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
				AND p.post_status = 'publish'
				AND p.post_date_gmt < NOW()
 			GROUP BY tr.object_id
			ORDER BY count DESC, p.post_date_gmt DESC
			LIMIT $limit;";

		$related = $wpdb->get_results($q);
 		if ( $related ) {
			foreach($related as $r) {
				$retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
			}
		} else {
			$retval .= '
	<li>No related posts found</li>';
		}
		$retval .= '</ul>';
		return $retval;
	}
	return;
}
add_shortcode('related_posts', 'related_posts_shortcode');

Con este shortcode, podemos añadir en nuestro post, un listado de artículos relacionados usando los tags del mismo para buscarlo los similares.

Modo de uso

[related_posts]

2) Mostrar una gráfica de Google Chart

function chart_shortcode( $atts ) {
	extract(shortcode_atts(array(
	    'data' => '',
	    'colors' => '',
	    'size' => '400x200',
	    'bg' => 'ffffff',
	    'title' => '',
	    'labels' => '',
	    'advanced' => '',
	    'type' => 'pie'
	), $atts));

	switch ($type) {
		case 'line' :
			$charttype = 'lc'; break;
		case 'xyline' :
			$charttype = 'lxy'; break;
		case 'sparkline' :
			$charttype = 'ls'; break;
		case 'meter' :
			$charttype = 'gom'; break;
		case 'scatter' :
			$charttype = 's'; break;
		case 'venn' :
			$charttype = 'v'; break;
		case 'pie' :
			$charttype = 'p3'; break;
		case 'pie2d' :
			$charttype = 'p'; break;
		default :
			$charttype = $type;
		break;
	}

	if ($title) $string .= '&chtt='.$title.'';
	if ($labels) $string .= '&chl='.$labels.'';
	if ($colors) $string .= '&chco='.$colors.'';
	$string .= '&chs='.$size.'';
	$string .= '&chd=t:'.$data.'';
	$string .= '&chf='.$bg.'';

	return '<img title="'.$title.'" src="http://chart.apis.google.com/chart?cht='.$charttype.''.$string.$advanced.'" alt="'.$title.'" />';
}
add_shortcode('chart', 'chart_shortcode');

El shortcode ideal para incrustar gráficas en nuestros posts. Mediante una nomenclatura con una serie de parámetros la personalización de la gráfica será más sencilla y cómoda.

Modo de uso

[chart data="41.52,37.79,20.67,0.03" bg="F7F9FA" labels="Reffering+sites|Search+Engines|Direct+traffic|Other" colors="058DC7,50B432,ED561B,EDEF00" size="488x200" title="Traffic Sources" type="pie"]

3) Muestra tu publicidad Adsense

function showads() {
    return '<script type="text/javascript"><!--
google_ad_client = "pub-3637220125174754";
google_ad_slot = "4668915978";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
';
}

add_shortcode('adsense', 'showads');

Sencillo shortcode que nos permite insertar adsense allá donde queramos dentro e nuestro post.

Modo de uso

[adsense]

4) Mostrar contenido en relación a las capacidades del usuario

function access_check_shortcode( $attr, $content = null ) {
    extract( shortcode_atts( array( 'capability' => 'read' ), $attr ) );
    if ( current_user_can( $capability ) && !is_null( $content ) && !is_feed() )
        return $content;

    return 'Sorry, only registered members can see this text.';
}

add_shortcode( 'access', 'access_check_shortcode' );

Si quieres mostrar contenido de tu post, pero quieres que todos los usuarios lo puedan ver, este shortcode es el tuyo. Con el puedes ocultar el contenido según las capacidades del usuario que lo lee.

Modo de uso

[access capability="switch_themes"]

5) Incrusta un RSS en tu post

/This file is needed to be able to use the wp_rss() function.
include_once(ABSPATH.WPINC.'/rss.php');

function readRss($atts) {
    extract(shortcode_atts(array(
	"feed" => 'http://',
      "num" => '1',
    ), $atts));

    return wp_rss($feed, $num);
}

add_shortcode('rss', 'readRss');

Sencillo sistema para insertar un RSS en tu post.

Modo de uso

[rss feed="http://feeds2.feedburner.com/Catswhocode" num="5"]

6) Crea automáticamente una mini url para Twitter

function subzane_shorturl($atts) {
	extract(shortcode_atts(array(
		'url' => '',
		'name' => '',
), $atts));
$request = 'http://u.nu/unu-api-simple?url=' . urlencode($url);
$short_url = file_get_contents($request);
	if (substr($short_url, 0, 4) == 'http')    {
		$name = empty($name)?$short_url:$name;
		return '<a href="'.$short_url.'">'.$name.'</a>';
	} else {
		$name = empty($name)?$url:$name;
		return '<a href="'.$url.'">'.$name.'</a>';
	}
}
add_shortcode('shorturl', 'subzane_shorturl');

Shortcode al que le pasamos una url y nos devuelve la url minimzada.

Modo de uso

[shorturl name="shortcode" url="http://codex.wordpress.org/Shortcode_API"]

7)  Mostrar la última imagen asociada al post

function sc_postimage($atts, $content = null) {
	extract(shortcode_atts(array(
		"size" => 'thumbnail',
		"float" => 'none'
	), $atts));
	$images =& get_children( 'post_type=attachment&post_mime_type=image&post_parent=' . get_the_id() );
	foreach( $images as $imageID => $imagePost )
	$fullimage = wp_get_attachment_image($imageID, $size, false);
	$imagedata = wp_get_attachment_image_src($imageID, $size, false);
	$width = ($imagedata[1]+2);
	$height = ($imagedata[2]+2);
	return '<div class="postimage" style="width: '.$width.'px; height: '.$height.'px; float: '.$float.';">'.$fullimage.'</div>';
}
add_shortcode("postimage", "sc_postimage");

Nos mostrará la última imagen asociada al artículo.

Modo de uso

[postimage]

8) Deja notas para administradores en los posts

add_shortcode( 'note', 'sc_note' );

function sc_note( $atts, $content = null ) {
	 if ( current_user_can( 'publish_posts' ) )
		return '<div class="note">'.$content.'</div>';
	return '';
}

Genial idea que nos permite dejar notas, únicamente visibles para los administradores, en nuestro posts.

Modo de uso

[note]This is a personal note that only admins can see![/note]

9) Quitando el autoformato de WordPress

function my_formatter($content) {
	$new_content = '';
	$pattern_full = '{(\[raw\].*?\[/raw\])}is';
	$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
	$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

	foreach ($pieces as $piece) {
		if (preg_match($pattern_contents, $piece, $matches)) {
			$new_content .= $matches[1];
		} else {
			$new_content .= wptexturize(wpautop($piece));
		}
	}

	return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);

Ideal para los que mostramos código en la página, ya que nos elimina las funciones encargadas de autoformatear el código. Aunque técnicamente no es un shortcode, se comporta como tal, y el texto que no esté dentro de los tags será autoformateado como por defecto.

Modo de uso

[raw]This portion of text will not be automatically formatted by WP.[/raw]

10) Muestra tus estadísticas con shortcodes

Se trata de un plugin que permite mostrar una serie de estadísticas mediante shortcodes.

Modo de uso

[pagerank]
[feedburner_subscribers]
[alexa_rank]
[technorati_authority]
[technorati_rank]
[user_count]
[post_count]
[page_count]
[comment_count]
[trackback_count]
[avg_comments_per_post]
[category_count]
[tag_count]
[link_count]
[google_backlinks]
[yahoo_backlinks]
[delicious_bookmarks]