Web4Web.IT - Community Forums
Random background color - Versione stampabile

+- Web4Web.IT - Community Forums (https://www.web4web.it/forum)
+-- Forum: Supporto Tecnico (/forum-21.html)
+--- Forum: Programmazione & Design (/forum-23.html)
+---- Forum: PHP (/forum-24.html)
+---- Discussione: Random background color (/thread-108.html)

1 2


Random background color - srpd - 24-12-2009 16:31

ciao. è possibile assegnare un colore di background a caso ad un div in un loop?
mi spiego meglio, il loop è la restituzione dei post di wordpress, settando per esempio 3 colori, è possibile impostare che i post visualizzati abbiano come sfondo uno di questi 3 colori a caso, in maniera tale che ogni post ha un suo sfondo?
grazie.


RE: Random background color - Pirosauro - 24-12-2009 17:56

con php o con js? Mellow


RE: Random background color - srpd - 24-12-2009 20:02

oddio se in php meglio, dovrebbe essere meno complicato, no?


RE: Random background color - Pirosauro - 25-12-2009 18:26

ok per il php
per prima cosa decidiamo l'approccio
- definiamo su un array i colori di background
- stampiamo i codici colore dentro il tag style

quindi

all'inizio del template, subito dopo "<?php", mettiamo:
Codice PHP:
$color_codes = array( '#EEE''#DDD''#CCC' ); 

all'interno del ciclo per la stampa dei post (probabilmente una cosa del tipo "<?php while (have_posts()) : the_post(); ?>") inseriremo la stampa:
Codice PHP:
<?php $rand_key array_rand$color_codes); echo $color_codes[$rand_key]; ?>

ad esempio:
Codice PHP:
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> 

diventerà:
Codice PHP:
    <div <?php post_class() ?> id="post-<?php the_ID(); ?>" style="background-color: <?php $rand_key array_rand$color_codes); echo $color_codes[$rand_key]; ?>"> 

dovrebbe funzionare, l'ho "generato" al volo Tooth


RE: Random background color - srpd - 25-12-2009 19:43

funziona, grazie mille Smile


RE: Random background color - srpd - 09-01-2010 20:52

e se invece volessi impostare un colore per ogni categoria differente, esempio se la categoria in cui è postato l'articolo è news allora mostra nero, se la categoria è archivio allora mostra verde, etc etc?
è possibile vero? Smile


RE: Random background color - Pirosauro - 11-01-2010 09:39

credo sia un po' più complicato...
ad ogni post puoi associare più categorie, o mi sbaglio?

in ogni caso, cercati la funzione che ti ritorna l'ID della categoria e sostituiscila a:
Codice PHP:
array_rand$color_codes

in questo modo, il primo colore sarà per la categoria con ID 1, il secondo per ID 2, e così via. Il resto non cambia


ps. è solo uno delle possibili soluzioni


RE: Random background color - srpd - 11-01-2010 14:28

perfetto. adesso provo Smile


RE: Random background color - srpd - 22-03-2010 17:51

alla fine ho fatto così:

Codice PHP:
if (in_category('20')) { $colore 'background-color:#000';}
elseif (
in_category('252')) { $colore 'background-color:#ff0000';}
else { 
$colore 'background-color:#fff';} 

e nell'html

Codice:
<div style="<?php echo $colore ?>">

giusto no? Whistling


RE: Random background color - Gandalf - 22-03-2010 18:06

Non conosco wordpress, ma a livello di codice va bene.
Se la categoria è 20, mostri un colore, se è 252 ne mostri un altro, altrimenti metti bianco.