• 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 🙂


  • User Attivo

    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 🙂


  • Super User

    Potresti optare per una rewriterule, nel caso vuoi tenerti il css con la sua estensione!