- Home
- Categorie
- Coding e Sistemistica
- PHP
- Variare il nome di un selettore CSS con PHP
-
Variare il nome di un selettore CSS con PHP
Buongiorno a tutti, ho un problema di programmazione php e non avendo trovato risposta da search e googlate varie, chiedo a voi
Sono stato indeciso fino all'ultimo se postare qui, nel forum css o in quello wordpress, ma trattandosi prettamente di un problema legato alla programmazione php ho optato per questa board, chiedo venia se non è quella appropriata
Sto creando un menu Wordpress basato sull'assegnazione di "id" all'attributo "body", in grado di riconoscere dinamicamente se ci si trova in una pagina statica, in una pagina di categoria e/o in homepage, in modo da non costringermi a dover intervenire manualmente sul codice ogniqualvolta sia necessario aggiungere una voce al menu.
So far, tutto bene:
[php]<body id="<?php if (is_home()): ?>home">
<?php else: ?>
<?php if (is_category()): ?><?php echo $post->category_name; ?>">
<?php else: ?>
<?php echo $post->post_name; ?>">
<?php endif; ?>
<?php endif; ?>[/php]e nella pagina:
[php]
<ul>
<li id="nav-home"><a href="<?php bloginfo ('home'); ?>">Home</a></li>
<?php wp_list_categories ('title_li='); ?>
<?php wp_list_pages('title_li='); ?>
</ul>
[/php]I problemi sono iniziati quando mi sono messo in testa di far riconoscere al singolo articolo, contenuto nella categoria, la voce di menu corrispondente alla categoria stessa. Questo si può fare aggiungendo al codice di cui sopra un
[php]<?php if (is_single()): ?>cat-item-<?php foreach((get_the_category()) as $category) { echo $category->cat_ID . ''; } ?>">[/php]
perchè Wordpress assegna all'elemento "li" un class="cat-item-[numero della categoria]" unico e distintivo, estraibile grazie al cat_ID.
Domanda:
come faccio a dire al foglio di stile CSS che il selettore .cat-item- deve completarsi dinamicamente a seconda della categoria che stiamo visionando sul sito? Ovvero, come posso completare:
[php]#home #nav-home a,
.current_page_item a,
.current-cat a,
.cat-item-<? $qui dovrebbe apparire l'ID dell categoria ?> a
[/php](sarebbe ideale evitare di trasformare il foglio style.css in uno style.php) ?
Grazie in anticipo a tutti per l'aiuto
-
Ciao Omegarav,
senza dubbio devi trasformare il tuo CSS in un PHP con mime-type settato a text/css.In questa maniera puoi inserire codice PHP nel CSS.
Anche se ti può sembrare strana, questa soluzione è in realtà uno standard.
Altra soluzione è creare il file CSS on-line alla prima richiesta, e poi ad ogni successiva testare l'esistenza del file: qualora non esistesse è da creare.
Spero di essere stato chiaro.
Ciao
-
Chiarissimo
Preferivo evitare la soluzione del cambio estensione per una questione di comodità nel tenere aggiornato il foglio (e non sono sicuro che a Wordpress piaccia troppo il foglio si stile principale in php). Faccio qualche test.
Grazie mille
-
Potresti optare per una rewriterule, nel caso vuoi tenerti il css con la sua estensione!