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
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
A no! ahora contanos que hace… ¿que muestra?
Supongo que algun tipo de listado de posts… pero quiero mas :p
Si yo también quiero saber que muestra 😛 bueno por lo mientras va a mi carpeta de favoritos WordPress 😀
Si, algo incompleto este post.
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. 🙂
Si eso es lo que hace el codigo este me esta empezando a gustar!
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.
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 🙂
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.
se ve bueno pero no me funciono
Tengo un asunto importanteque plantear. Tengo entradas peneinest en mi directorio http://articulos.corentt.com y no puedo verlos porque estan en la segunda pagina y cuando actualice a wordpress 3.02 no puedo ver las paginas anteriores