Altera o CSS quando o usuário está logado

2

Então eu tenho o seguinte código:

        <h3>
             <div class="sellertitle"><a class="allseller" href="#">Something</a> </div>

             <?php if ( is_user_logged_in() ) { ?>          
                     <div class="otherseller">  <a class="allotherseller" href="#">Else</a> </div>
             <?php } ?>
        </h3>

Então, para o "sellertitle", eu tenho o seguinte CSS:

<--logged in-->
.sellertitle {
  float: left;
  width: 49%;      
}

Como você pode ver, "Algo" está sempre visível e "Else" só fica visível quando o usuário está logado.

No entanto, quando o usuário está desconectado, eu quero que o CSS "sellertitle" seja "float: none"

<--logged out-->
  .sellertitle {
   float: none;
   width: 49%;      
 }

Qual seria a melhor maneira de conseguir isso?

    
por steve Kim 19.03.2015 / 06:51

2 respostas

9

Aqui está outra abordagem somente CSS, sem nenhum inline-PHP e desnecessário spam de CSS na cabeça. Se o seu tema estiver usando corretamente body_class () e um usuário estiver logado, o Wordpress adicionará uma classe "logada" para o corpo-elemento, então podemos usar isso em nossa folha de estilo:

<--logged out-->
.sellertitle {
  float: none;
  width: 49%;      
}

.otherseller {
  display: none;
}

<--logged in-->
.logged-in .sellertitle {
  float: left;     
}

.logged-in .otherseller {
  display: inline;
}
    
por Rafael 19.03.2015 / 12:58
2

você poderia tentar algo assim ... isso adicionará css na cabeça

add_action('wp_head', 'add_css_head');
function add_css_head() {
   if ( is_user_logged_in() ) {
   ?>
      <style>
          .sellertitle {
             float: left;
             width: 49%;      
           }
      </style>
   <?php
   } else {
   ?>
      <style>
          .sellertitle {
             float: none;
             width: 49%;      
           }
      </style>
   <?php
   }
}

outra é mudar de classe se estiver logado ...

então você terá dois css

.sellertitle {
  float: none;
  width: 49%;      
}
.sellertitle.logged {
  float: left;      
}

então no seu div algo assim ...

<div class="sellertitle <?php if ( is_user_logged_in() ) {echo 'logged';}">
    
por Reigel 19.03.2015 / 07:00

Tags