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.

Sobre el autor

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

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

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

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

  4. 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 *

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido