Esta entrada es la parte 25 de 39 de la serie Personalizar WordPress

Hace tiempo leí los 9 consejos de carlosleopoldo.com y estaba pendiente de ganas y tiempo para hacer alguna mejora.

Por fín llegó el día y el mejor sitio para publicar el resultado es este.

He creado una función para colocarla en la página functions.php y poder llamarla desde cualquier sitio.

Lo normal será incluirla en todas las páginas con "Not Found" y similares.

El código para llamar a la función (por ejemplo en el index.php del theme) sería

PHP:
  1. <?php anti404(); ?>

Esto depende de como se llame la función, que se puede cambiar.

Y la función es:

PHP:
  1. function anti404(){
  2.  global $wpdb;
  3. $no404=explode(',', preg_replace('/[^a-z]/i',',',$_SERVER['REQUEST_URI']));
  4. $donde=array('post_content','post_title','post_excerpt','post_name');
  5. for ($a=0;$a<count($no404);$a++){
  6.  if(strlen($no404[$a])>3){
  7.  $quebusco.=$no404[$a].', ';
  8.  for($b=0;$b<count($donde);$b++){
  9.  if($busca==''){$busca= $donde[$b].' LIKE '%'.$no404[$a].'%''; }
  10.  else{$busca.= ' OR '.$donde[$b].' LIKE '%'.$no404[$a].'%''; }
  11.  }
  12.  }
  13. }
  14. $buscaid = $wpdb->get_results(
  15.  "SELECT ID FROM $wpdb->posts WHERE ($busca) AND post_type='post'
  16.    AND post_status='publish' ORDER BY ID DESC LIMIT 5");
  17. if($buscaid): ?>
  18.  <ul><li><b>Mis sugerencias</b> buscando <i><?php echo $quebusco; ?></i><ul>
  19.  <?php foreach( $buscaid as $laid ) : $post=get_post($laid->ID); ?>
  20.  <li><a href="<?php echo get_permalink($laid->ID); ?>"><?php echo $post->post_title; ?></a></li>
  21.  <?php endforeach; ?>
  22.  </ul>
  23.  </li></ul>
  24. <?php endif;
  25. }

Espero primero que alguien la busque fallos y/o errores, después alguien que la pruebe y sería la leche que encima le gustase a alguno.

zzaludos

¿Te gustó este post? ¡Compártelo!
  • Bitacoras.com
  • TwitThis
  • Facebook
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Live
  • Technorati
  • Ping.fm
  • Wikio
  • Turn this article into a PDF!
  • E-mail this story to a friend!
  • Print this article!

También te puede interesar:

cursos formación continua

    9 comentarios en “Personalizar la página de error 404 (no existe)”

  1. Información Bitacoras.com...

    Valora en Bitacoras.com: Hace tiempo leí los 9 consejos de carlosleopoldo.com y estaba pendiente de ganas y tiempo para hacer alguna mejora. Por fín llegó el día y el mejor sitio para publicar el resultado es este. He creado una función para colocarl.....

  2. ferticidio (53 comentarios) dijo:

    A no! ahora contanos que hace... ¿que muestra?
    Supongo que algun tipo de listado de posts... pero quiero mas :p

  3. Plaga (12 comentarios) dijo:

    Si yo también quiero saber que muestra :P bueno por lo mientras va a mi carpeta de favoritos WordPress :D

  4. elgudi (1 comentarios) dijo:

    Si, algo incompleto este post.

  5. zzamov (11 comentarios) dijo:

    Habría mucho que explicar.
    Muestra una lista con 5 resultados de buscar parte de la url. Lo que quiero es que se saquen fallos y se vea si es útil para en otro par de meses hacer algún plugin. ;)
    De momento para los que tengan los permalink usando (?) sólo les será útil cambiando en la línea 3 REQUEST_URI por QUERY_STRING. Que sólo es de prueba y sondeo. :)

  6. zzamov (11 comentarios) dijo:

    Ya tengo un ejemplo http://ayudawordpress.com/pendiente da un "no se ha encontrado..."
    Si añade la función y en el tema donde quiera la llamada saldría una lista de post que contienen la palabra "pendiente" en el título, el contenido o el estracto, por ejemplo este. Las listas que muestra (últimas entradas y comentarios) no tienen porqué tener relación con lo que el visitante quiere ver y no encuentra.

  7. Por lo que puedo entender muestra resultados que te puedan interesar segun la url que no fue encontrada. Una explicacion mas detallada no nos caeria mal :)

  8. Li Chong (45 comentarios) dijo:

    Pero descubran que muestra por uds. Mismos!!! lo que hace el código, de buenas a primeras, es sugerir posibilidades de lo que estaba buscando.

Escribe un Comentario

XHTML: Puedes usar estos códigos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Comentarios adicionales gracias BackType

Subir

Anúnciese aquí
Expertos en WordPress
Evolución Euribor
Consigue 28 themes premium por menos de 14 euros
Participa en el Debate
  • Macgrafic: @Jose esta aplicación es para el iPhone y Puedes gestionar tu blog de tu dominio o de...
  • fff:
  • Abundancia33: Actualicé en algunos blogs y si hay un problema, con esta versión desaparece el...
  • Hugo Alfaro: Wow!… esta utilidad me ha sido de gran utilidad… ideal para los sitios...
  • Jose: P.D. Enhorabuena por la web! Sois magnificos!
Noticias Breves
  • BuddyPress 1.2 está prácticamente lista para lanzarse salvo que las pruebas de los usuarios digan lo contrario. Ya puedes descargarla y empezar a comprobarla (enlace al svn). En esta nueva versión se han cerrado más de 125 tickets desde la última beta.

    [#3]

  • Ya está disponible WordPress MU 2.9.1 y José Conti me avisa que en unas horas tendrá lista la traducción para poder tener actualizado y listo tu sitio multiusuario.

    [#6]

  • ¿Sabías que Kubrick, el tema que va a ser sustituido en 2010 lo creó un desarrollador danés?. Toda la historia de este tema, ya mítico, la tienes en este artículo (traducido con Google).

    [#26]


  • Ahora mismo en los FOROS ...
    Usuarios Registrados
  • Acceder

  • Translate this Blog
    Spanish flagItalian flagChinese (Simplified) flagPortuguese flagEnglish flagGerman flagFrench flagJapanese flagRussian flagSwedish flagCatalan flagHebrew flag                              
    By N2H