Cambiare il CSS quando l'utente ha effettuato l'accesso
Quindi ho il seguente codice:
<h3>
<div class="sellertitle"><a class="allseller" href="#">Qualcosa</a> </div>
<?php if ( is_user_logged_in() ) { ?>
<div class="otherseller"> <a class="allotherseller" href="#">Altro</a> </div>
<?php } ?>
</h3>
Poi, per il "sellertitle", ho il seguente CSS:
<--utente connesso-->
.sellertitle {
float: left;
width: 49%;
}
Come puoi vedere, "Qualcosa" è sempre visibile e "Altro" è visibile solo quando l'utente ha effettuato l'accesso.
Tuttavia quando l'utente non ha effettuato l'accesso, voglio che il CSS di "sellertitle" sia "float:none"
<--utente disconnesso-->
.sellertitle {
float: none;
width: 49%;
}
Qual è il modo migliore per ottenere questo risultato?

Ecco un altro approccio basato solo su CSS, senza PHP inline e senza spammare CSS nell'head. Se il tuo tema utilizza correttamente body_class() e un utente è loggato, WordPress aggiunge una classe "logged-in" all'elemento body, quindi possiamo usarla nel nostro foglio di stile:
<--utente non loggato-->
.sellertitle {
float: none;
width: 49%;
}
.otherseller {
display: none;
}
<--utente loggato-->
.logged-in .sellertitle {
float: left;
}
.logged-in .otherseller {
display: inline;
}

Approccio intelligente. Usa ciò che è già disponibile di default :-). +1

Aggiungerei che questa risposta richiede che il tema utilizzi correttamente la funzione body_class()
, giusto per gli utenti che non la conoscono. +1.

@cybmeta infatti, hai ragione... nella maggior parte dei casi utilizzo _s come base per i miei temi, che imposta body_class()
di default :)

ah! un altro aggiunto al mio momento "aha!".. questa dovrebbe essere segnata come risposta. :)

potresti provare qualcosa del genere... questo aggiungerà il CSS nell'head
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
}
}
un'altra opzione è cambiare la classe se l'utente è loggato...
in questo modo avrai due CSS
.sellertitle {
float: none;
width: 49%;
}
.sellertitle.logged {
float: left;
}
poi nel tuo div qualcosa del genere...
<div class="sellertitle <?php if ( is_user_logged_in() ) {echo 'logged';}">

ho aggiunto un'altra opzione... e penso sia l'approccio migliore.. ;)

Capisco. È qualcosa che non ho mai provato. Grazie per l'informazione! =)

Non è molto intelligente aggiungere stili direttamente a wp_head
. Crea un foglio di stile personalizzato e usa wp_enqueue_scripts
per caricare il tuo foglio di stile personalizzato. In questo modo, plugin e temi figli possono sovrascrivere facilmente questi stili se necessario. Inoltre, dai un'occhiata all'altra risposta che utilizza ciò che viene fornito di default :-)
