A partir de un post de Fernando encontré una manera muy sencilla de mostrar texto aleatorio en el blog a partir de un archivo de texto (.txt). El proceso es sencillo, sólo hay que agregar el texto en un archivo .txt y luego insertar un pequeño código en el theme (o un widget si se prefiere).
Yo por ejemplo el uso que le he dado es para mostrar citas (quotes) en la cabecera de mi blog, también le he añadido unas imágenes y estilo al texto para dejarlo más bonito 😛
La «instalación» es, como decía, muy sencilla. Lo primero que tienen que hacer es crear un archivo de texto (con el bloc de notas alcanza) y luego subirlo al servidor. Deben tener en cuenta la ruta y el nombre del archivo para luego editar parte del código que se insertará en el theme (o widget). Cada una de las frases que irán en el archivo de texto debe tener un salto de línea, es decir, una frase por renglón:
Esta es la primer frase.
Esta es la segunda frase.
Esta es la tercera frase.
Esta es la cuarta frase.
Una vez que han agregado todo el texto que quieran mostrar, editan el theme (o agregan un widget) y colocan el siguiente código:
<?php $file = “/home/public_html/usuario/ruta/del/archivo/texto-aleatorio.txt”; $quote = file($file); echo $quote[array_rand($quote)]; ?>
¡Y listo! Con eso ya deberían ver una frase diferente cada vez que la página sea recargada.
Recuerden que es una frase por línea.
Yo me topé con un inconveniente un poco molesto: las palabras con tildes y los caracteres especiales se veían mal, pero encontré una solución: en lugar de usar tildes en las letras se debe utilizar el código HTML que reemplaza a dicha letra. ¿Cómo es esto? Por ejemplo, en lugar de utilizar «á» se debe utilizar «á» y así con cada letra/caracter especial. Pueden ver una tabla con todas las equivalencias haciendo click acá.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Yo añadiría tambié, que la dirección del documento debe ser "la del servidor", es por eso que es un poco extraña y no tienen http://www…
En algunos casos, si no llegara a funcionar con ese código, hay que averiguar la ruta de la carpeta, eso puedes hacerlo desde el FTP, Panel de Control de tu hosting, o preguntarle a la empresa que te provee el alojamiento
Solo eso, excelente artículo, así se evita usar y sobre-cargar las bases de datos.
PD: generalmente sería como dijo el compañero en el post, algo así "/home/public_html/usuario/ruta/del/archivo/texto-aleatorio.txt", obviamente, editandolá, pero puede cambiar; a eso me refería.
Cierto, no me di cuenta de eso, tenés razón.
Una cosa nada mas: hay que tener cuidado con los widgets y php, recomiendo poner que si usan widget, que tengan el Exec-PHP o algo por el estilo instalado 😉
Yo hacia esto experimentando con el Hello Dolly, pero parece bueno como lo planteás. Saludos!
Había leído algo similar, pero con PHP sin necesidad de tocar la base de datos tampoco. De todas, se valoran más alternativas…
Un día de estos la probare en mi locahost…
Buen post 😉
Yo incluí un código para rotar anuncios en los themes PF-Ads, funciona de manera muy similar al propuesto. Quizá le sea de utilidad a alguien. 🙂
GENIAL!
Tengo una duda: se puede insertar en el archivo *.txt una porción de código de wordpress para imprimir el valor de un custom field y así poder acompañar el random de texto con una imagen o con otro texto.
He realizado algunas pruebas y me funcionó hasta que se me ocurrió añadir un valor de un custom fields (autorquota) en el que el editor pueda decidir si quiere añadir algo más, logicamente, no me funcionó (mi nivel es MUY bajo)
Gracias
Se podría mejorar bastante la velocidad de ese script si se meten las frases directamente en el array del codigo php, asi te ahorras el proceso de lectura del fichero texto que es mucho más lento.
Saludos!
un gran aporte lo voy a probar
Mejor escribir normal, con tildes y eñes y luego hacer esto:
$quote=utf8_encode($quote);
echo $quote[array_rand($quote)];
Aunque el post sea algo antiguo, me gustaria conocer si fuera posible, que se debe incluir en el codigo y donde, para que en vez de mostrar una sola linea del archivo de texto, muestre tantas como queramos.
Gracias y Saludos..
Disculpen… porque al hacer esto me sale un WARNING division by zero in…?
Disculpen… porque al hacer esto me sale un WARNING division by zero in…?
que interesante, ahora se me ocurrio colocar un texto variable en el banner de la página de inicio, cual es el truco?, como llego a donde debo colocar el código?