Personalizar la página de error 404 (no existe)

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 anti404(); ?>

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

Y la función es:

function anti404(){
 global $wpdb;
$no404=explode(',', preg_replace('/[^a-z]/i',',',$_SERVER['REQUEST_URI']));
$donde=array('post_content','post_title','post_excerpt','post_name');
for ($a=0;$a<count($no404);$a++){
 if(strlen($no404[$a])>3){
 $quebusco.=$no404[$a].', ';
 for($b=0;$b<count($donde);$b++){
 if($busca==''){$busca= $donde[$b].' LIKE '%'.$no404[$a].'%''; }
 else{$busca.= ' OR '.$donde[$b].' LIKE '%'.$no404[$a].'%''; }
 }
 }
}
$buscaid = $wpdb->get_results(
 "SELECT ID FROM $wpdb->posts WHERE ($busca) AND post_type='post'
   AND post_status='publish' ORDER BY ID DESC LIMIT 5");
if($buscaid): ?>
 <ul><li><b>Mis sugerencias</b> buscando <i><?php echo $quebusco; ?></i><ul>
 <?php foreach( $buscaid as $laid ) : $post=get_post($laid->ID); ?>
 <li><a href="<?php echo get_permalink($laid->ID); ?>"><?php echo $post->post_title; ?></a></li>
 <?php endforeach; ?>
 </ul>
 </li></ul>
<?php endif;
}

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

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(0 votos, promedio: 0)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

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

  1. Pingback: Bitacoras.com

  2. 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. 🙂

  3. Ya tengo un ejemplo 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.

  4. Anuncios en Espa&nti

    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 🙂

  5. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido