Contenido

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

28 Jun

+ 4

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]

Wordpress Adsense Stats, ten siempre visibles tus ganancias en tu Wordpress

22 Jun

+ 6

Actualizo:
Al parecer a muchos usuarios les está fallando el plugin. Me he puesto en contacto con Eduardo a ver si lo soluciona rápidamente y no dice cosas. Así que por el momento no lo useis.

Eduardo Sada (Coders.me) me avisa de que ya tiene listo Wordpress Adsense Stats, un plugin que nos permite visualizar en nuestro Dashboard nuestros datos de Adsense sin necesidad de acceder a nuestra cuenta. Algo realmente interesante para tenerlo todo en el mismo sitio. [Descargar]

Aporta más información sobre tus plugins de Wordpress

19 Jun

+ 6

Para ser un buen desarrollador de plugins para Wordpress debemos mejorar algunos de nuestros puntos de interacción con el usuario. Para ello Wordpress nos ofrece una serie de opciones para mejorar la información relacionada con el plugin que hemos desarrollado.

plugin_action_links

Se trata de un filtro que se aplicara siempre que entremos en la página de gestión de plugins. En él podemos modificar la salida de links que el plugin nos ofrece:

plugin_action_links
(Ver Imagen)

Estos links pueden, por ejemplo, llevarnos directamente a la página de configuración del plugin. Un valor añadido que hará que el plugin gane un poco de calidad.

<?php
// Asociamos la función add_plugin_links() al filtro
add_filter('plugin_action_links', 'add_plugin_links', 10, 2);

// Declaramos la función
function add_plugin_links($links, $file) {
	// Marcamos el plugin actual
	static $this_plugin;
	if (!$this_plugin) $this_plugin = plugin_basename(__FILE__);

		// Comprobamos que el plugin que estamos mostrando por pantalla es el nuestro.
		if ($file == $this_plugin ){

		// Definimos el enlace a "Configuración"
		$settings_link = '<a href="index.php">Configuración</a>';

		// Añadimos el nuevo link a los ya existentes
		array_unshift($links, $settings_link);
	}
	// Devolvemos los links
	return $links;
}
?>

after_plugin_row

Otra forma de ofrecer más información al usuario es informar de que existe una actualización pendiente para el plugin. Para ello podemos mostrar un mensaje en la parte inferior del plugin y así se verá claramente la actualización:

plugin_after_row
(Ver Imagen)

Esto hará que el usuario sea consciente del cambio de versión que está disponible en cada momento. Para ello Wordpres nos ofrece la posibilidad de comprobar un fichero alojado en nuestro servidor que indicará la versión y la contrastará con la instalada (siempre y cuando el servidor permita este tipo de peticiones).

<?php
// Asociamos add_plugin_row() al action.
add_action('after_plugin_row', 'add_plugin_row', 10, 2);

// Declaramos la función
function add_plugin_row($links, $file) {
	global $wp_version;
	// Marcamos el plugin actual
	static $this_plugin;
	if (!$this_plugin) $this_plugin = plugin_basename(__FILE__);

	// Comprobamos que el plugin que estamos mostrando por pantalla es el nuestro.
	if ($file == $this_plugin ){
		// ¿Está disponible la actualización de plugins?
		$current = get_option('update_plugins');
		if (!isset($current->response[$file])) return false;

		// Controlamos el número de columnas disponibles dependiendo de la versión.
		$columns = substr($wp_version, 0, 3) == "2.8" ? 3 : 5;

		// Definimos la ruta de nuestro fichero de información.
		$url = "http://www.yoursite.com/info.txt";

		// Lanzamos la consulta externa.
		$update = wp_remote_fopen($url);

		// Pintamos el mensaje de alerta.
		echo '<td colspan="'.$columns.'">';
		echo $update;
		echo '</td>';
	}
}

Minimizando

Apartir de Wordpress 2.7 disponemos de 2 posibilidades más:

<?php
// Nombre del plugin
$plugin_name = "miplugin";

// Filtros específicos para cada plugin
add_filter("plugin_action_links_$plugin_name", "....");
add_action("after_plugin_row_$plugin_name", "....");
?>

WP Memory Usage y WP Sytem Health, controla el estado de tu Wordpress

18 Jun

+ 6

Hoy via WP-Engineer descubro dos plugins que considero realmente importantes para nuestro Wordpress. Ambos ofrecen información acerca de nuestro servidor, algo realmente útil para tener controlado lo que no solemos controlar.

WP Memory Usage

wp-memory-usage
(Ver Imagen)

Se trata de un simple Widget, desarrollado por Alex Rabe,  que nos vá mostrando con una gráfica de colores el nivel de memoria consumida sobre el máximo de memoria establecida para Wordpress. Muy útil para los que tienen problemas de rendimiento.

[Descargar][Página del plugin]

WP System Health

sytem
(Ver Imagen)
php
(Ver Imagen)
wordpress
(Ver Imagen)
database
(Ver Imagen)

Se trata de un plugin muy completo que además de mostrar información de la máquina, nos muestra información sobre nuestra instalación PHP, nuestro Wordpress y nuestra base de datos. Una información muy interesante de conocer.

[Descargar] [Página del plugin]

Actualización II

David Rojas nos avisa que en servidores con IIS (Internet Information Services) no funcionan correctamente los 2 plugins.

Actualización

A petición de Relay, ahí van las capturas de aNieto2k :D

Continua —>

Wordpress Mobile Edition 3.0.5

7 Jun

+ 3

Wordpress Mobile Edition es el plugin que nos permite adaptar nuestro Wordpress a los dispositivos móviles. La versión 3.0.5 nos incorpora una serie de correcciones entre ellas la inclusión de los dispositivos Palm Pre como dispositivo táctil a tratar. Además, desde la versión anterior ya usa Carrington Mobile como theme, algo que nos permitirá adaptarlo a nuestro estilo. [Descargar]

Compatibilidad de plugins en Wordpress

3 Jun

+ 2

La compatibilidad de plugins de Wordpress, generalmente es un problema que muchos nos encontramos a la hora de tener que actualizarlos o instalarlos en nuestras distintas versiones de Wordpress.

Por ello, se ha creado Wordpress Plugin Compatibility Check,  un aplicación que intenta recopilar todos los plugins disponibles en el repositorio oficial de Wordpress y reportar la compatibilidad con cosas como la versión mínima o máxima, la posibilidad de funcionar en servidores con PHP4, capacidad de sacar el plugin de wp-content o si este está harcodeado en el código,,.. incluso si este usa o no la librería wpdb para interactuar con la base de datos o algún método obsoleto y retirado del código de Wordpress.

Actualmente tienen más de 5.000 plugins introducidos, lo que aproximadamente hace más de un 63% de los plugins disponibles.

10 plugins de Wordpress que te ayudarán a ahorrar tiempo

28 May

+ 4

SixRevision ha realizado un listado de 10 plugins de Wordpress con los que seguro que ahorrarás tiempo en todo lo relacionado con el blog.

  1. Post Ideas: Es un plugin sencillo que se encarga de gestionar de una forma cómoda esos miniborradores que puedes usar para almacenar ideas para futuros posts.
  2. Tidy Up: Plugin que se encarga de detectar errores en tu HTML y lo limpia (mañana lo probaré a ver que significa eso de limpiar :D )
  3. Pages+: Ideal para los blogs que tienen muchas páginas, gestiona muy eficientemente el trabajo con ellas.
  4. Mass Post Manager: Realizar tareas comunes como “Cerrar comentarios”, “Eliminarlos”, … a un conjunto de posts a la vez.
  5. Wordpress Attachment Manager: Interesante plugin que te permite generar listas de elementos adjuntados al post.
  6. Survey Gizmo: Plugin ideal para gestionar tus encuestas. Dispone de una versión FREE bastante completa.
  7. Tweetable Twitter: Plugin que integra tu Wordpress con Twitter, y además envia los posts automáticamente a twitter para mántener a tus followers informados.
  8. Secure Files: Te ayudará a gestionar esos ficheros que únicamente los usuarios registrados deben poder descargar.
  9. SmartVideoPlus: Plugin múltimedia con el que podrás integrar vídeos en tu Wordpress más cómodamente.
  10. Sticky Post: Los usuarios de Wordpress 2.7 ya lo tienen integrado en el núcleo de Wordpress, pero los usuarios de versiones más antiguas podrán decidir cómodamente que post quedará marcado como sticky en su Blog.

Stealth Login, añade un grado de seguridad más a tu Wordpress

26 May

+ 5

En PuntoGeek me he encontrado un interesante plugin que nos permite añadir un grado más de seguridad a nuestros blogs. Se trata de Stealth Login, un plugin que mediante un una serie de reglas en el fichero .htaccess hará que nuestro fichero wp-login.php y el directorio wp-admin/ sean reemplazados por los nombres que nosotros le indiquemos.

screenshot-11
(Ver Imagen)

Este sería el estado inicial, el fichero .htaccess que Wordpress nos añade por defecto. Una vez modificadas las opciones disponibles, obtendremos un resultado similar a este.

screenshot-2
(Ver Imagen)

La idea es realmente buena, ya que te dá completo control sobre el nombre que tu quieras ponerle a tu pantalla de login y a tu panel de administración. Además, si algo falla, siempre puedes borrar directamente el fichero .htaccess desde el FTP y volver a empezar desde donde Wordpress te lo deja originalmente.

Descargar

Puedes descargar directamente desde la página oficial de Wordpress.

¿Como y donde puedo extender Wordpress?

22 May

+ 12

¿Estás pensando en añadir una funcionalidad a Wordpress y no sabes por donde empezar a extenderlo? ¿te gustaría hacer las tareas más comunes de tu día a día con el blog sean más fáciles? Pues solo necesitas conocer, como actuar frente a esta pregunta.

¿Como y donde puedo extender Wordpress?

Wordpress, por defecto, nos presenta 3 formas de extender las funcionalidades de Wordpress:

  1. Mediante actions.
  2. Mediante filters.
  3. Mediante declaración de funciones.

Todas ellas sin necesidad de tocar el código propio del núcleo de Wordpress, evitando así tener que hacer modificaciones cada vez que actualicemos nuestro Wordpres.

Extender Wordpress mediante Actions

Uno de los métodos que podemos usar y que están disponibles el la API de Wordpress es el uso de actions. Como su nombre indica, actions son las acciones definidas por el equipo de Wordpress en las que podremos añadir nuestras propias funcionalidades.

<?php add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1); ?>

Esta función que tanto hemos visto en plugins o código que hemos mostrado para extender Wordpress, hace una función muy importante y cada parámetro aporta un grado más de personalización.

  • $tag: Nombre del action (ahora los veremos).
  • $function_to_add: Nombre de la función que ejecutaremos al activarse el action ($tag).
  • $priority: Prioridad de ejecución, de menor a mayor.
  • $accepted_args: Aceptamos (o no) el paso de parámetros a nuestra función.

Ejemplo:

<?php
define("TWITTER_USER", 'username');
define("TWITTER_PASS", 'password');
define("TWITTER_MESSAGE", '[Post] %name%: %link% <-- %title%');

function update_twitter($post_ID = '')  {
	$curl_handle = curl_init();

	// Nombre del blog
	$message = str_replace("%name%", get_bloginfo('name'), TWITTER_MESSAGE);

	// Cargamos el post
	$post = get_post($post_ID);

	// Enlace y título
	$message = str_replace("%link%", $post->guid, $message);
	$message = str_replace("%title%", $post->post_title, $message);

	// Enviamos el Tweet
	curl_setopt($curl_handle, CURLOPT_URL, 'http://twitter.com/statuses/update.xml');
	curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
	curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl_handle, CURLOPT_POST, 1);
	curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$message";
	curl_setopt($curl_handle, CURLOPT_USERPWD, TWITTER_USER.":"TWITTER_PASS);
	$buffer = curl_exec($curl_handle);
	curl_close($curl_handle);
  return $post_ID;
}
// Añadimos funcionalidad a publish_post
add_action('wp_insert_post', 'update_twitter');
?>

No le hagais mucho caso al código, es ilustrativo y puede producir un funcionamiento erroneo en Wordpress

En este código, vemos lo sencillo que es añadir una funcionalidad a nuestro Wordpress. En este caso, estamos añadiendo al action wp_insert_post la función update_twitter(). En este caso, una vez hayamos pulsado el botón de publicar en nuestro Wordpress, este ejecutará la función update_twitter() y esta enviará a Twitter un aviso de un nuevo artículo.

¿Donde se extienden los actions?

Este ejemplo solo debe servir para hacernos una idea de como añadir funcionalidades a nuestro Wordpress, lo interesante es que debemos conocer los actions disponibles para extender nuestro Wordpress.

La API nos muestra un listado bastante detallado de los action disponibles. Pero si tenemos alguna duda lo mejor es siempre revisar el código.

En el fichero post.php del directorio wp-includes/ podemos encontrar en la línea 1534 la llamada do_action() que lanzará las acciones asociadas al nombre wp_insert_post.

[...]
	wp_transition_post_status($post_status, $previous_status, $post);

	if ( $update)
		do_action('edit_post', $post_ID, $post);

	do_action('save_post', $post_ID, $post);
	do_action('wp_insert_post', $post_ID, $post);

	return $post_ID;
}
[...]

do_action(), es la función encargada de lanzar el array de acciones asociadas a la key definida por el primer parámetro. En este caso wp_insert_post, lanzará nuestra función que recibirá por parámetro $post_ID que estamos pasando con el do_action(). Suplementaríamente estamos paando un segundo parámetro con $post, que contiene el objeto con los valores que componen el post que acabamos de insertar en la BD.

Revisando el código de Wordpress encontraremos una infinidad de do_action() que permiten extender Wordpress en casi todos los puntos en los que queramos añadir una nueva funcionalidad.

Mediante filters

Los filters, están mucho más extendidos por el núcleo de Wordpress. Como su nombre indica, sirven para filtrar variables que nos podemos encontrar en cualquier funcionalidad de Wordpress.

Al igual que los actions, podemos extender la funcionalidad de nuestro Wordpress en ellos.

Ejemplo

<?php
	function noShowIPs($IP = '') {
		// Mostramos solo los primeros 7 carácteres
		return substr($IP, 0, 7);
	}
	// Aplicamos el filtro
	add_filter('get_comment_author_IP', 'noShowIPs');
?>

En este pequeño ejemplo, indicamos que no queremos mostrar la IP completa del usuario que comenta en nuestro Wordpress cuando se usa la función get_comment_author_IP(). Mediante un substr() devolvemos los 7 primeros dígitos de $IP.

¿Donde se extienden los filters?

Al igual que los actions, los filters están en los ficheros que componen Wordpress. En el ejemplo que hemos montado previamente hemos hecho uso de get_comment_author_IP() que se encuentra en el fichero comment-template.php del directorio wp-includes/. Si nos dirigimos a la línea 173 veremos el siguiente código.

[...]
function get_comment_author_IP() {
	global $comment;
	return apply_filters('get_comment_author_IP', $comment->comment_author_IP);
}
[...]

apply_filters() es el do_action() de los filters, ya que se encarga de recorrer el array de filtros definidos para la key establecida y los va aplicando uno trás otro. En nuestro caso, recibimos la IP del comentarista para posteriormente devolver una IP recortada.

Mediante declaración de funciones

Esta forma, es quizas la más obvia, pero no por ello deja de ser potente.

En muchos casos, usamos plugins por que son más fáciles de instalar, pero bien bien, podrían ser sustituidos por funciones alojadas en ficheros concretos de Wordpress. Obtendríamos el mismo resultado.

Ejemplo

<?php
function ult_comments($cuantos = 5) {
    global $wpdb;
    $comentarios = $wpdb->get_results($wpdb->prepare("
                            SELECT  wc.comment_date, wc.comment_author, wp.post_title, wp.guid, wp.comment_count
                            FROM ".$wpdb->comments." as wc, ".$wpdb->posts." as wp
                            WHERE wc.comment_post_ID = wp.ID
                            AND  wc.comment_approved = '1'
                            AND wc.comment_type = ''
                            ORDER BY wc.comment_date DESC LIMIT 0,%d;",$cuantos ));
    foreach ($comentarios as $comentario) {
			echo '<li>
				<a href="'.$comentario->guid.'" title="'.$comentario->post_title.'">'.$comentario->post_title.'
				  <small>'.$comentario->comment_count.'</small>
                                </a>
        			<small>Por '.$comentario->comment_author.' hace '.since_date($comentario->comment_date).'</small>
                              </li>';
    }
}
?>

Uno de los puntos recomendados para alojar este tipo de funciones, es el fichero functions.php de nuestro theme. Todas las funciones definidas en él serán visibles desde nuestro themes, plugins, …

En este caso, definimos esta función que nos devolverá los últimos 5 comentarios del blog en el fichero functions.php. Una vez definida, podremos usarla en nuestro theme, donde más rábia nos dé, simplementa llamándola.

<ul>
<?php ult_comments(10); // 10 últimos comentarios ?>
</ul>

¿Que podemos hacer con todo esto?

Pues lo que queramos, podemos hacer que Wordpress se transforme a nuestra voluntad. Nos permite desde añadir funcionalidades que nos ayudan en el día a día, hasta cambiar el concepto de blog por el de CMS, Miniblog, …

Edito:

NUNCA SE DEBE TOCAR EL CÓDIGO DE WORDPRESS

Este artículo intenta mostrar las diferentes formas de extender Wordpress, sin necesidad de tocar los ficheros que componen el núcleo de Wordpress, osea la raíz y wp-includes/ y wp-admin/. Para poder extenderlo puedes hacer uso de los fichero functions.php de tu theme o generar un plugin con dichas funcionalidades dentro.

La limitación, está en nuestra cabeza :D

6 plugins para el mantenimiento de tu Wordpress

10 May

+ 7

Muchas veces no tenemos tiempo para dedicarle al blog el mantenimiento que se merece, por ello debemos delegar ciertas tareas a plugins que las realicen por nosotros. Estos 6 plugins se encargan de realizar las más básicas tareas que nuestro Wordpress puede necesitar períodicamente.

  1. Broken link checker: Se encarga de revisar los enlaces salientes de nuestro blog y comprobar que estos están activos aún o no. Muy útil para artículos antiguos.
  2. WP AntiVirus: Un completo set que revisa periódicamente los posibles fallos de seguridad de Wordpress.
  3. Akismet: El archiconocido sistema anti spam de Wordpress.
  4. www Redirect: Evitando www de la ruta del blog, evitamos que Google pueda pensar que tenemos contenido duplicado.
  5. WP Database Backup: Crea una copia de seguridad de nuestros datos. Dispone de la capacidad de enviar una copia por email. Áltamente recomendable
  6. WP Security Scan: Otro plugin encargado de buscar posible fallos de seguridad en el sistema.