Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Aggiungere una classe sotto condizione

    Come da titolo, vorrei aggiungere una classe ad un div, solo se mi trovo in una certa pagina.

    Ho provato a procedere così...

    Parte HTML:

    codice:
    <div id="PINCOPALLINO" class="<?php echo $class; ?>">
    Parte PHP:

    codice:
    <?php
    if(is_page(37)) {
        echo '<div id="PINCOPALLINO" class="CLASSE_AGGIUNTA">';
    }
    ?>
    Purtroppo non funziona in quanto al posto di aggiungere una classe al div, mi crea un nuovo div, con la classe desiderata.

    Potete aiutarmi a correggerlo?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    192
    Devi manipolare il DOM se div è già presente, non puoi con linguaggio lato server ma lato cliente. Javascript o Jquery e similari.
    Oppure puoi catturare l'output prima di inviarlo a php.
    Codice PHP:
    <?php
    ob_start
    ();
    echo 
    '<div>testo</div>';
    $var ob_get_contents();
    $var str_replace('<div''<div class="CLASSE_AGGIUNTA"'$var);
    ob_end_clean();
    echo 
    $var;
    ?>
    Se è presente il testo di cerca la sostituzione modifica la stringa, altrimenti div default.
    Ultima modifica di darbula; 22-12-2022 a 02:13

  3. #3
    Sostituisci il codice esistente con:

    Codice PHP:
    <div id="PINCOPALLINO" class="<?php echo($class); ?> <?php echo(is_page(37) ? 'CLASSE_AGGIUNTA' ''); ?>">

  4. #4
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Sostituisci il codice esistente con:

    Codice PHP:
    <div id="PINCOPALLINO" class="<?php echo($class); ?> <?php echo(is_page(37) ? 'CLASSE_AGGIUNTA' ''); ?>">
    Wow, grazie mille, funziona perfettamente!

    A leggere così sembra quasi una cosa semplice...ma ho avuto grandi difficoltà a trovare una soluzione e anche l'utente che ti ha preceduto aveva indicato una soluzione molto più complessa.

    C'è per caso qualche controindicazione??

    Approfitto per una domanda integrativa: se nell'aggiungere una classe a quel DIV, volessi anche rimuoverne un'altra nello stesso DIV, sarebbe possibile?

    Grazie ancora!

    PS EDIT: ho notato, usando la funzione "ispeziona" di google, che il codice da questo messaggio "<b>Warning</b>: Undefined variable $class in <b>/Applications/MAMP/htdocs/XXXX/wp-content/themes/MIOTEMA/header.php</b>

    Cosa vuol dire?
    Ultima modifica di ivanisevic82; 22-12-2022 a 22:07

  5. #5
    Scusate il doppio post, il precedente non è più evitabile.

    Ho risolto.

    Il problema dipendeva dal fatto che scrivevo:

    codice:
    <div id="header" class="<?php echo($class); ?> <?php echo(is_page(49) ? 'contatti' : ''); ?>">
    
    Invece dovevo scrivere semplicemente:
    codice:
    <div id="header" class="<?php echo(is_page(49) ? 'contatti' : ''); ?>">
    Grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.