Masquer le widget aux utilisateurs non connectés sans plugin (functions.php)
-
-
@pat-j Jene parvienspas àterminer ce code: `//Masquer le widget à l'utilisateurnon connecté function hide_widget () { if (is_user_logged_in ()) { } autre { } } add_action ('wp','hide_widget'); ` Je vous remercie!@pat-j I am not able to finish this code: `// Hide Widget to non-logged user function hide_widget() { if ( is_user_logged_in() ) { } else { } } add_action( 'wp', 'hide_widget' );` Thank you!
- 0
- 2014-01-30
- Diana Murcia
-
Veuillezmodifier votre questionpourinclure le code.C'estbeaucoupplusfacile à lire là-bas.Please edit your question to include the code. It's a lot easier to read there.
- 0
- 2014-01-30
- Pat J
-
Est-ce votre widget ou un widgetfournipar untiers -probablement unplugin?Is this your widget, or a widget provided by a third party-- a plugin probably?
- 0
- 2014-01-30
- s_ha_dum
-
Merci de votre aide!J'aimis àjourma questionprincipale.Thank you for your help! I have updated my main question.
- 0
- 2014-01-30
- Diana Murcia
-
2 réponses
- votes
-
- 2014-01-30
Testé sur Twenty Fourteenet fonctionne.
Changez le hook loop_start à une autreposition sinécessaire.
Le code va à lafin de votrefichierfunctions.php dethèmesenfants.
function wpsites_register_widget() { register_sidebar( array( 'name' => 'Logged In Only Widget', 'id' => 'members-widget', 'before_widget' => '<div>', 'after_widget' => '</div>', ) ); } add_action( 'widgets_init', 'wpsites_register_widget' ); add_action( 'loop_start', 'logged_in_widget', 25 ); function logged_in_widget() { if ( is_user_logged_in() && is_active_sidebar( 'members-widget' ) ) { dynamic_sidebar('members-widget', array( 'before' => '<div class="members-widget">', 'after' => '</div>', ) ); } }
Une autre solution consiste à utiliser unplugin detype widget logic où vouspouvez ajouter le conditionnelis_user_logged_in () au widgetexistant.
http://codex.wordpress.org/Function_Reference/is_user_logged_in https://wordpress.stackexchange.com/a/128181/9884
Tested on Twenty Fourteen and works.
Change the loop_start hook to another position if needed.
The code goes at the end of your child themes functions.php file.
function wpsites_register_widget() { register_sidebar( array( 'name' => 'Logged In Only Widget', 'id' => 'members-widget', 'before_widget' => '<div>', 'after_widget' => '</div>', ) ); } add_action( 'widgets_init', 'wpsites_register_widget' ); add_action( 'loop_start', 'logged_in_widget', 25 ); function logged_in_widget() { if ( is_user_logged_in() && is_active_sidebar( 'members-widget' ) ) { dynamic_sidebar('members-widget', array( 'before' => '<div class="members-widget">', 'after' => '</div>', ) ); } }
Another solution is to use a widget logic type plugin where you can add the conditional is_user_logged_in() to the existing widget.
http://codex.wordpress.org/Function_Reference/is_user_logged_in https://wordpress.stackexchange.com/a/128181/9884
-
Merci,maisje souhaitemasquer un widget qu'ilest déjà créé (filtreparprixpar woocommerce).Dois-je vraiment d'abord déclarer leplugin?Je vous remercie!Thank you, but I want to hide a widget that it is already created (filter per price by woocommerce). Do I really need to declare the plugin first? Thank you!
- 0
- 2014-01-30
- Diana Murcia
-
-
Merci,maisje ne veuxpasmodifier le code WP,à cause desmises àjour.Thank you, but I don't want to edit the WP code, because of updates.
- 0
- 2014-01-30
- Diana Murcia
-
@ArtGoddess: la suggestionest d'éditer lethème,quipeut ounon avoir desproblèmes d'édition dunoyau WordPress.@ArtGoddess: the suggestion is to edit the theme, which may or may not have the issues as editing WordPress core.
- 0
- 2014-01-30
- s_ha_dum
-
Merci,mais commej'utilise lethème Canvaset qu'ilestfréquemmentmis àjour,je préfèreeffectuer le changement dans lethèmeenfant.Thank you, but as I'm using Canvas theme, and it is updated frequently I prefer to make the change in the child theme.
- 0
- 2014-01-30
- Diana Murcia
-
Trouvez alors oùilest appelé dans lethèmeenfant.Find where it's being called in the child theme then.
- 0
- 2014-02-04
- eteich
-
Jetravaille sur un site Woocommerce Wordpress.
Je souhaitemasquer un widgeten frontend aux utilisateursnon connectés.
Le widgetest "filtréparprix" de Woocommerce.J'utilise également les "Options de visibilité du catalogue" carje nepeuxpas afficher lesprix aux utilisateursnon connectés.
J'utilise unthème de canevaset unthèmeenfant.
Je souhaite utiliser un code àinsérer dansmonfichierfunctions.phppersonnalisé.
Jene veuxpas utiliser deplugin.
J'essayais avec ce code,maisje ne suispasen mesure de leterminer:
Quelqu'unpeut-ilm'aider s'il vousplaît?
Mercibeaucoup !!