Regresar   Foro Bloggers > Recursos > Tutoriales

Enlaces Útiles
Navegación

Si tenes problemas de acceso al foro visitá este link

Foro
Reglas [LEER!]
Registrarse
Buscar
User CP
Nuevos Posts
Posts de Hoy
Cerrar sesión





Hosting


Publicita AQUI solo 10 USD!!!.
Links de interés
TV Online
Videos Blooper
Hosting



Responder
 
Herramientas Estilo
  #1  
Viejo 21-ene-2009, 06:28
Avatar de Teo Atienza
Teo Atienza Teo Atienza está fuera de línea
Senior Member
 
Registrado: agosto-2008
Posts: 270
Teo Atienza is on a distinguished road
Predeterminado 10 buenos hacks para WordPress

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:

Citar:
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.

Citar:
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.

Citar:
<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.

Citar:
<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
.
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:

Citar:
<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:

Citar:
<?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):

Citar:
function wp_pagenavi($before = '', $after = '') { global $wpdb, $wp_query;

Tenemos que llamar la función pagenavi_init(); allá vamos:

Citar:
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:

Citar:
<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.


Citar y responder
  #2  
Viejo 21-ene-2009, 06:37
Avatar de Teo Atienza
Teo Atienza Teo Atienza está fuera de línea
Senior Member
 
Registrado: agosto-2008
Posts: 270
Teo Atienza is on a distinguished road
Predeterminado

4. Incluir imágenes en el contenido del post

El problema. Usar los campos personalizados para mostrar las imágenes vinculadas a tus posts es una gran idea, pero a muchos usuarios de WordPress les gustaría dar con una solución para conseguir incrustar las imágenes en el mismo contenido del post.

La solución. Hasta donde yo se, no hay ningún plug-in para conseguir esto. Por suerte, el siguiente bucle nos lo solucionará: buscará imágenes en el contenido de los posts y los mostrará en pantalla.
1.Pega el siguiente código en cualquier lugar de tu theme:

Citar:
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?><?php$szPostContent = $post->post_content;$szSearchPattern = '~<img [^\>]*\ />~';// Run preg_match_all to grab all the images and save the results in $aPicspreg_match_all( $szSearchPattern, $szPostContent, $aPics );// Check to see if we have at least 1 image$iNumberOfPics = count($aPics[0]);if ( $iNumberOfPics > 0 ) { // Now here you would do whatever you need to do with the images // For this example the images are just displayed for ( $i=0; $i < $iNumberOfPics ; $i++ ) { echo $aPics[0][$i]; };};endwhile;endif;?>
Explicación del código. El código que acabas de utilizar consiste, básicamente, simplemente, en un bucle básico de WordPress. La única diferencia es que hemos utilizado PHP y expresiones normales para buscar imágenes dentro del contenido de los posts en lugar de mostrar los posts únicamente. De esta manera, si las imágenes se encuentran, se mostrarán.



5.
Crea un botón de “Enviar a Twitter”

El problema. ¿Estás en Twitter? Si lo estás, ya sabrás lo bueno que es este servicio para compartir online con tus amigos todo lo que encuentres interesante. Así que, ¿por qué no darle a tus lectores la oportunidad de enviar directamente el link de tus posts a Twitter, trayéndote así más visitantes?

La solución. Este truco es muy fácil de conseguir. Lo único que tienes que hacer es crear un link a Twitter con el parámetro de status. Como estamos en un blog de WordPress, utilizaremos la función the_permalink() para obtener la URL:

Citar:
<a href="http://twitter.com/home?status=Currently reading <?php the_permalink();

Como ves, es muy fácil, pero al mismo tiempo muy útil.


6. Usar comillas normales en lugar de las comillas inglesas

El problema. Si eres un desarrollador que suele publicar pedazos de códigos en tu sitio web, probablemente te habrás encontrado con el siguiente problema: un usuario te dice que tu el código que has posteado no funciona. ¿Por qué? Simplemente porque, por defecto, WordPress transforma las comillas normales en las comillas inglesas, aquellas que se conocen como “smart quotes”, con las que no funcionan los códigos.

La solución. Para deshacerte de este tipo de comillas, haz lo siguiente:
1.Abre el archivo functions.php de tu plantilla. Si este archivo no existe, créalo.
2.Pega en él el siguiente código:

Citar:
Citar:
<?php remove_filter('the_content', 'wptexturize'); ?>


3.Guarda el archivo y adiós al problema.


Explicación del código. La función wptexturize ()convierte automáticamente las comillas normales en comillas inglesas. Utilizando la función remove_filter() le estamos diciendo a WordPress que no queremos que esta función se aplique al contenido de nuestros posts.



7. No permitir las peticiones de comentarios sin referencia.


El problema. El spam es un problema para todos los bloggers. Está claro que Akismet ayuda, pero ¿qué hay de malo en prevenir más, si cabe, el spam? El siguiente código buscará la referencia (la URL desde donde se ha llamado a la página) cuando se esté accediendo al archivo wp-comments-posts.php. Si la referencia existe, o si es la URL de tu blog, se permitirá el comentario. Por el contrario, si la referencia no existe, la página dejará de cargarse y el comentario no se posteará.

La solución. Para aplicar este truco, simplemente pega el siguiente código en el archivo function.php de tu plantilla. Si la plantilla no incluye este archivo, créalo.

Citar:
function check_referrer() { if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == “”) { wp_die( __('Please enable referrers in your browser, or, if you\'re a spammer, bugger off!') );}}add_action('check_comment_flood', 'check_referrer');




8. Utilizar CSS Sliding Doors en la navegación de WordPress

Antes de empezar, aclaro que no he traducido el término “Sliding Doors” porque no se cómo traducirlo literlamente (?). De todas formas, es fácil de explicar: un sliding door es un determinado efecto (modificable con el CSS) que tiene lugar al pasar el puntero por una determinada zona (normalmente, un menú de navegación. Desde aquí puedes ver un ejemplo, en el menú de navegación.

El problema. Las funciones wp_list_pages() y wp_list_categories() permiten un gran número de cosas, pero no permiten integrar un elemento <span> para que puedas utilizar la conocida técnica del CSS Sliding-Doors. Por suerte, con algo de PHP y algunas expresiones, podemos utilizar esta fantástica técnica en nuestro blog de WordPress.
Debido al gran número de tutoriales acerca de los CSS Sliding Doors, no explicaremos aquí como funciona; de todas formas, en este excelente artículo puedes leer más sobre esta técnica.

La solución. Crea las imágenes que necesites y, una vez hecho esto, edita el archivo style.css de tu plantilla de WordPress. Aquí tienes un ejemplo:

Citar:
#nav a, #nav a:visited { display:block;}#nav a:hover, #nav a:active { background:url(images/tab-right.jpg) no-repeat 100% 1px; float:left;}#nav a span { float:left; display:block;}#nav a:hover span { float:left; display:block; background: url(images/tab-left.jpg) no-repeat 0 1px;}
2.Ahora editaremos el header.php. Simplemente copia y pega uno de los siguientes códigos, de acuerdo con tus necesidades.

-Para tus páginas:

Citar:
<ul id="nav"><li><a href="<?php echo get_option('home'); ?>/"><span>Home</span></a></li><?php echo preg_replace('@\<li([^>]*)>\<a([^>]*)>(.*?)\<\/a>@i', '<li$1><a$2><span>$3</span></a>', wp_list_pages('echo=0&orderby=name&exlude=181&titl e_li=&depth=1')); ?></ul>
-Para tus categorías:

Citar:
<ul id="nav"><li><a href="<?php echo get_option('home'); ?>/"><span>Home</span></a></li><?php echo preg_replace('@\<li([^>]*)>\<a([^>]*)>(.*?)\<\/a>@i', '<li$1><a$2><span>$3</span></a>', wp_list_categories('echo=0&orderby=name&exlude=181 &title_li=&depth=1')); ?></ul>
Explicación del código. En este ejemplo, hemos hecho uso del parámetro echo=0 en las funciones wp_list_pages() y wp_list_categories(), que nos permite obtener el resultado de la función sin ponerlo directamente en pantalla. Entonces, el resultado de esta función es utilizado por la función PHP preg_replace() y finalmente se muestra con los tags <span> añadidos entre los tags <li> y <a>.

Citar y responder
  #3  
Viejo 21-ene-2009, 06:37
Avatar de Teo Atienza
Teo Atienza Teo Atienza está fuera de línea
Senior Member
 
Registrado: agosto-2008
Posts: 270
Teo Atienza is on a distinguished road
Predeterminado

9. Muestra un header aleatorio en tu blog
El problema. Realmente no es un problema, sino que a muchos usuarios de WordPress les gustaría mostrar un header aleatorio a sus lectores.

La solución.
1. Primero selecciona las imágenes que quieras mostrar como header (llámalas 1.jpg, 2.jpg, 3.jpg y, así, sucesivamente). Puedes utilizar tantas imágenes como quieras.
2. Sube las imágenes a tu directorio wp-content/themes/yourtheme/images.
3. Abre el archivo header.php y pega el siguiente código en él:

Citar:
$num = rand(1,10); //Escribe un rango de números entre 1 y 10, asumiendo que 10 es el total de imágenes que tienes para utilizar como header
<div id="header" style="background:transparent url(images/.jpg) no-repeat top left;">

4. Hecho. Ahora cada página o post de tu blog mostrará un header aleatorio, de todos los que tu has dispuesto.
Explicación del código. Nada complicado. Simplemente hemos empezado una variable $num utilizando la función PHP rand() para obtener un número al azar entre 1 y 10, con el que obtendremos el header que tenga asignado ese número.



10. Haz una lista de tus posts programados

El problema. Como muchos bloggers, lógicamente, querrás que tus visitantes visiten tu blog con más frecuencia o que se suscriban a tu feed RSS. Una buena forma de hacer crecer la curiosidad de tus lectores acerca de tus futuros posts es hacer una lista de los títulos de tus posts programados.

La solución. Abre cualquier archivo de tu plantilla, y copia el siguiente código:

Citar:
<?php$my_query = new WP_Query('post_status=future&order=DESC&showposts= 5');if ($my_query->have_posts()) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <li><?php the_title(); ?></li><?php endwhile;}?>
Explicación del código.
En este código hemos creado una pregunta personalizada utilizando WP_Query para enviar una base de datos y mostrar los 5 posts programados más recientes. Hecho esto, se utiliza un bucle para que aparezcan los títulos de los posts.
Citar y responder
  #4  
Viejo 21-ene-2009, 08:06
Avatar de allvipdomains
allvipdomains allvipdomains está fuera de línea
Senior Member
 
Registrado: agosto-2008
Posts: 1,111
allvipdomains will become famous soon enough
Predeterminado

Perfecto. Muchas gracias.

Estaria muy bien un ejemplo de cada, porque aunque hay algunas muy claras, otras no sé muy bie que son.
Citar y responder
  #5  
Viejo 21-ene-2009, 09:50
Avatar de chicho
chicho chicho está fuera de línea
Senior Member
 
Registrado: noviembre-2008
Posts: 202
chicho is an unknown quantity at this point
Predeterminado

Gracias por la traducción, realmente la mayoría son unos buenos consejos/trucos.
Citar y responder
  #6  
Viejo 22-ene-2009, 01:10
Avatar de vicarlone
vicarlone vicarlone está fuera de línea
Senior Member
 
Registrado: agosto-2008
Localización: http://www.vidablogger.com.ar
Posts: 1,164
vicarlone is on a distinguished road
Predeterminado

Muy buenos consejos, gracias!
__________________
AYUDA PARA BLOGS - HUMOR ONLINE - NOTICIAS DE MUSICA

Mi Blog Personal <-- Acepto intercambios de enlaces con blogs personales - Mandar MP
Citar y responder
  #7  
Viejo 22-ene-2009, 01:45
Avatar de KnxDT
KnxDT KnxDT está fuera de línea
Super Moderator
 
Registrado: agosto-2007
Localización: http://twitter.com/KnxDT
Posts: 4,903
KnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond reputeKnxDT has a reputation beyond repute
Predeterminado

Solo para dar los créditos:

http://www.smashingmagazine.com/2009...rdpress-hacks/
Citar y responder
  #8  
Viejo 22-ene-2009, 10:41
siebel siebel está fuera de línea
Senior Member
 
Registrado: mayo-2008
Posts: 140
siebel is on a distinguished road
Predeterminado

Estupendo, muchas gracias.
__________________
Citar y responder
  #9  
Viejo 22-ene-2009, 10:45
Avatar de todotuto
todotuto todotuto está fuera de línea
Senior Member
 
Registrado: mayo-2008
Posts: 1,582
todotuto is on a distinguished road
Predeterminado

Muy buen aporte, gracias
Citar y responder
  #10  
Viejo 22-ene-2009, 01:10
Avatar de Teo Atienza
Teo Atienza Teo Atienza está fuera de línea
Senior Member
 
Registrado: agosto-2008
Posts: 270
Teo Atienza is on a distinguished road
Predeterminado

Citar:
Originalmente publicado por allvipdomains Ver post
Perfecto. Muchas gracias.

Estaria muy bien un ejemplo de cada, porque aunque hay algunas muy claras, otras no sé muy bie que son.
Si. No se, di las que no entiendas y a ver si, entre todos, te ayudamos. Yo hay alguna que tampoco tengo muy claro (por eso me costó más traducirla :S), por ejemplo, la segunda: evitar la duplicación de posts en múltiples bucles.

Citar:
Originalmente publicado por chicho Ver post
Gracias por la traducción, realmente la mayoría son unos buenos consejos/trucos.
Citar:
Originalmente publicado por vicarlone Ver post
Muy buenos consejos, gracias!
Citar:
Originalmente publicado por siebel Ver post
Estupendo, muchas gracias.
Citar:
Originalmente publicado por todotuto Ver post
Muy buen aporte, gracias
De nada!

Citar:
Originalmente publicado por KnxDT Ver post
Gracias por poner el enlace KnxDT. No lo puse porque no tenía claro si estaba permitido poner enlaces. (Aunque, ahora que lo pienso, si no es mi página no se podría considerar spam y, lógicamente, estaría permitido xD). Lo dicho, gracias.
Citar y responder
Responder


Herramientas
Estilo

Reglas del foro
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is activado
Emotíconos está activado
El código [IMG] está activado
El código HTML está desactivado

Ir a


Todas las horas son GMT -3. La hora es 04:03 .


Usando: vBulletin Version 3.8.3
Copyright ©2000 - 2010
     
   
 
vRewrite 1.5 beta SEOed URLs completed by Tech Help Forum and Chalo Na.