Teo Atienza
21-ene-2009, 06:28
Antes de empezar, aclaro que estos hacks, trucos, o como quieras llamarlos, fueron publicados en Smashing Magazine; yo solamente los he traducido para que pueda llegar a más gente, sin que el idioma actúe como una barrera. Espero que os sea de provecho.
__________________________________________________ ________________
1. Muestra los anuncios de Google sólo a los visitantes que vengan del buscador.
El problema. Es sabido por todos que los visitantes regulares de nuestro blog no clican, normalmente, en los anuncios. Aquellos que lo hacen son, el 90% de las veces, visitantes que han llegado a nuestro blog por medio de los buscadores.
Otro problema es el “smart pricing” de Google. ¿Cómo explicar en qué consiste el “smart pricing”? Fácil, si tu promedio de clics (CTR) por visitante es bajo, el dinero que ganas se divide entre desde 2 a 10; es decir, si los clics que tienes en tus anuncios en base a los lectores que lo ven son pocos, Google aplicará el “smart pricing”.
Por ejemplo, si un clic, normalmente, te haría ganar $1.00, con el “smart pricing” podrías ganar sólo $0.10. Doloroso, ¿verdad?. Por suerte, esto tiene solución si sólo muestras los anuncios de Google a los visitantes que llegan desde el buscador, ya que esto se traduciría en más clics y un CTR más alto.
La solución.
1. Abre el archivo functions.php en tu plantilla.
2. Pega el siguiente código en él:
function scratch99_fromasearchengine(){
$ref = $_SERVER['HTTP_REFERER'];
$SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
foreach ($SE as $source) {
if (strpos($ref,$source)!==false) return true;
}
return false;
}3. Hecho esto, pega el siguiente código en el lugar de tu plantilla donde quieras que aparezca tu AdSense. Este se mostrará sólo a los visitantes que lleguen a tu página a través de los buscadores.
if (function_exists('scratch99_fromasearchengine')) {
if (scratch99_fromasearchengine()) {
INSERTA AQUÍ TU CÓDIGO ADSENSE
}
}
Explicación del código. Este truco empieza con la creación de una función llamada scratch99_fromasearchengine(). Esta función contiene una variable, $SE, en la que podrás especificar los buscadores que quieras. De esta forma podrás añadir fácilmente nuevos buscadores añadiéndolos a esta variable.
Lo que hará la función scratch99_fromasearchengine() es comprobar si el buscador del que llega el visitante está incluido o no en la variable $SE permitiéndole así ver, o no, tus anuncios de AdSense.
2. Evita la duplicación de post en múltiples bucles
El problema. Debido a la reciente popularidad de las plantillas “estilo revista”, hay una gran demanda de usuarios de Wordpress que usan más de un bucle (o loop; que es el proceso que se encarga de mostrar los posts por pantalla) en la página de inicio de su blog como solución para evitar la duplicación de los posts en el segundo bucle.
La solución. La solución a este problema es simple; usaremos las ventajas que nos brinda el PHP.
1.Empieza por crear un archivo PHP y pon en él todas las IDs del primer bucle.
<h2>Loop n°1</h2><?php$ids = array();while (have_posts()) : the_post();the_title();?><br /><?php $ids[]= $post->ID;endwhile; ?>
2.Ahora vamos con el segundo bucle: utilizamos la función PHP in_array () para comprobar si la ID de un post está contenida en la matriz $ids. Si la ID no está en esta función, podemos visualizar el post ya que este no se visualizaba en el primer bucle.
<h2>Loop n°2</h2><?phpquery_posts("showposts=50");while (have_posts()) : the_post();if (!in_array($post->ID, $ids)) { the_title();?> <br /><?php }endwhile; ?>
Explicación del código. Cuando se está ejecutando el primer bucle, todas las IDs de los posts contenidos en él se ponen en una determinada variable. Cuando se ejecuta el segundo bucle, comprobamos que la ID de cada post no se encuentre ya expuesta en el primer bucle remitida por la matriz.
3.Sustituye “Siguiente” y “Anterior” por una Paginación
El problema. Por defecto, WordPress ha funcionado con los links de anterior y siguiente página. Claro está que esto es mejor que nada, pero no entiendo por qué la gente de WordPress no pone un paginador por defecto. Ya se que existen plug-ins que te permiten insertar una paginación en tu blog pero, ¿cómo insertarla directamente en tu plantilla?
La solución. Para conseguir este truco, utilizaremos el plug-in de Wordpress PageNavi y insértalo directamente en tu plantilla.
1. Lo primero que tienes que hacer es, obviamente, descargar el plug-in (http://wordpress.org/extend/plugins/wp-pagenavi/).
2. Descomprime el plug-in y sube el wp-pagenavi.php y el wp-pagenavi.css al directorio de tu plantilla.
3. Abre el archivo en el que quieras poner la paginación (por ejemplo: index.php, categories.php, search.php, etc.) y busca el siguiente código:
<div class="navigation"><div class="alignleft"><?php next_posts_link('Previous entries') ?></div><div class="alignright"><?php previous_posts_link('Next entries') ?></div></div>
4. Reemplaza este código por el siguiente:
<?phpinclude('wp-pagenavi.php');if(function_exists('wp_pagenavi')) { wp_pagenavi(); }?>
5.Ahora tenemos que modificar un poco el archivo del plug-in. Para ello, abre el archivo wp-pagenavi.php y encuentra la siguiente línea (línea #61):
function wp_pagenavi($before = '', $after = '') { global $wpdb, $wp_query;
Tenemos que llamar la función pagenavi_init(); allá vamos:
function wp_pagenavi($before = '', $after = '') { global $wpdb, $wp_query; pagenavi_init(); //Calling the pagenavi_init() function
6.Ya casi lo tenemos. Lo último que nos queda por hacer es añadir la hoja de estilos de wp-pagenavia nuestro blog. Para hacerlo, abre el header.php y añade la siguiente línea:
<link rel="stylesheet" href="<?php echo TEMPLATEPATH.'/pagenavi.css';?>" type="text/css" media="screen" />
Explicación del código. Este truco consiste básicamente en añadir el plug-in directamente en los archivos de la plantilla. Tenemos que añadir también una llamada a la función pagenavi_init() para asegurarnos de que la paginación aparecerá correctamente.
__________________________________________________ ________________
1. Muestra los anuncios de Google sólo a los visitantes que vengan del buscador.
El problema. Es sabido por todos que los visitantes regulares de nuestro blog no clican, normalmente, en los anuncios. Aquellos que lo hacen son, el 90% de las veces, visitantes que han llegado a nuestro blog por medio de los buscadores.
Otro problema es el “smart pricing” de Google. ¿Cómo explicar en qué consiste el “smart pricing”? Fácil, si tu promedio de clics (CTR) por visitante es bajo, el dinero que ganas se divide entre desde 2 a 10; es decir, si los clics que tienes en tus anuncios en base a los lectores que lo ven son pocos, Google aplicará el “smart pricing”.
Por ejemplo, si un clic, normalmente, te haría ganar $1.00, con el “smart pricing” podrías ganar sólo $0.10. Doloroso, ¿verdad?. Por suerte, esto tiene solución si sólo muestras los anuncios de Google a los visitantes que llegan desde el buscador, ya que esto se traduciría en más clics y un CTR más alto.
La solución.
1. Abre el archivo functions.php en tu plantilla.
2. Pega el siguiente código en él:
function scratch99_fromasearchengine(){
$ref = $_SERVER['HTTP_REFERER'];
$SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
foreach ($SE as $source) {
if (strpos($ref,$source)!==false) return true;
}
return false;
}3. Hecho esto, pega el siguiente código en el lugar de tu plantilla donde quieras que aparezca tu AdSense. Este se mostrará sólo a los visitantes que lleguen a tu página a través de los buscadores.
if (function_exists('scratch99_fromasearchengine')) {
if (scratch99_fromasearchengine()) {
INSERTA AQUÍ TU CÓDIGO ADSENSE
}
}
Explicación del código. Este truco empieza con la creación de una función llamada scratch99_fromasearchengine(). Esta función contiene una variable, $SE, en la que podrás especificar los buscadores que quieras. De esta forma podrás añadir fácilmente nuevos buscadores añadiéndolos a esta variable.
Lo que hará la función scratch99_fromasearchengine() es comprobar si el buscador del que llega el visitante está incluido o no en la variable $SE permitiéndole así ver, o no, tus anuncios de AdSense.
2. Evita la duplicación de post en múltiples bucles
El problema. Debido a la reciente popularidad de las plantillas “estilo revista”, hay una gran demanda de usuarios de Wordpress que usan más de un bucle (o loop; que es el proceso que se encarga de mostrar los posts por pantalla) en la página de inicio de su blog como solución para evitar la duplicación de los posts en el segundo bucle.
La solución. La solución a este problema es simple; usaremos las ventajas que nos brinda el PHP.
1.Empieza por crear un archivo PHP y pon en él todas las IDs del primer bucle.
<h2>Loop n°1</h2><?php$ids = array();while (have_posts()) : the_post();the_title();?><br /><?php $ids[]= $post->ID;endwhile; ?>
2.Ahora vamos con el segundo bucle: utilizamos la función PHP in_array () para comprobar si la ID de un post está contenida en la matriz $ids. Si la ID no está en esta función, podemos visualizar el post ya que este no se visualizaba en el primer bucle.
<h2>Loop n°2</h2><?phpquery_posts("showposts=50");while (have_posts()) : the_post();if (!in_array($post->ID, $ids)) { the_title();?> <br /><?php }endwhile; ?>
Explicación del código. Cuando se está ejecutando el primer bucle, todas las IDs de los posts contenidos en él se ponen en una determinada variable. Cuando se ejecuta el segundo bucle, comprobamos que la ID de cada post no se encuentre ya expuesta en el primer bucle remitida por la matriz.
3.Sustituye “Siguiente” y “Anterior” por una Paginación
El problema. Por defecto, WordPress ha funcionado con los links de anterior y siguiente página. Claro está que esto es mejor que nada, pero no entiendo por qué la gente de WordPress no pone un paginador por defecto. Ya se que existen plug-ins que te permiten insertar una paginación en tu blog pero, ¿cómo insertarla directamente en tu plantilla?
La solución. Para conseguir este truco, utilizaremos el plug-in de Wordpress PageNavi y insértalo directamente en tu plantilla.
1. Lo primero que tienes que hacer es, obviamente, descargar el plug-in (http://wordpress.org/extend/plugins/wp-pagenavi/).
2. Descomprime el plug-in y sube el wp-pagenavi.php y el wp-pagenavi.css al directorio de tu plantilla.
3. Abre el archivo en el que quieras poner la paginación (por ejemplo: index.php, categories.php, search.php, etc.) y busca el siguiente código:
<div class="navigation"><div class="alignleft"><?php next_posts_link('Previous entries') ?></div><div class="alignright"><?php previous_posts_link('Next entries') ?></div></div>
4. Reemplaza este código por el siguiente:
<?phpinclude('wp-pagenavi.php');if(function_exists('wp_pagenavi')) { wp_pagenavi(); }?>
5.Ahora tenemos que modificar un poco el archivo del plug-in. Para ello, abre el archivo wp-pagenavi.php y encuentra la siguiente línea (línea #61):
function wp_pagenavi($before = '', $after = '') { global $wpdb, $wp_query;
Tenemos que llamar la función pagenavi_init(); allá vamos:
function wp_pagenavi($before = '', $after = '') { global $wpdb, $wp_query; pagenavi_init(); //Calling the pagenavi_init() function
6.Ya casi lo tenemos. Lo último que nos queda por hacer es añadir la hoja de estilos de wp-pagenavia nuestro blog. Para hacerlo, abre el header.php y añade la siguiente línea:
<link rel="stylesheet" href="<?php echo TEMPLATEPATH.'/pagenavi.css';?>" type="text/css" media="screen" />
Explicación del código. Este truco consiste básicamente en añadir el plug-in directamente en los archivos de la plantilla. Tenemos que añadir también una llamada a la función pagenavi_init() para asegurarnos de que la paginación aparecerá correctamente.