web-dev-qa-db-fra.com

Masquer un widget dans un div sur un type de message spécifique

J'ai un type de message personnalisé appelé "produit" et je souhaite masquer un widget spécifique uniquement si le type de message est "produit". J'essayais avec quelque chose comme ceci:

<?php function hidewidget() {
   $args = array(
   'name' => 'product'
   );
   $output = 'objects';
   $post_types = get_post_types( $args, $output );
   return $post_types; } 
   $widhide = hidewidget(); 
?>

   <?php 
      if ($widhide = 'product') {
      } else { 
   ?>
    <div class="widgetclass"><?php dynamic_sidebar( 'filters' ); ?></div>
   <?php } ?>

Le problème est le suivant: cette fonction renvoie simplement le nom, je ne peux rien faire avec le nom.

J'ai besoin d'appeler une fonction qui renvoie une page avec un type de message spécifique.

C'est possible dans wordpress? Toute autre solution pour cacher cette div sur la page de détail du produit dans woocommerce?

pd: Je ne peux pas supprimer .widgetclass, il doit être présent , J'essaie avec un plugin "widget display" de masquer le widget mais le .widgetclass div apparaissait toujours de manière évidente.

1
Kenny Amaro

Vous pouvez juste vérifier s'il s'agit du type de post_type spécifique ..

if (is_singular( 'product' ) ) {
   //do nothing if it's a singular product page
}else{
  <div class="widgetclass"><?php dynamic_sidebar( 'filters' ); ?></div>
{

Assurez-vous que le type de message réel est juste "produit" et n'est pas un espace de noms.

0
rudtek

Je voudrais utiliser le plugin Widget Logic et utiliser le conditionnel à l'intérieur du champ:

! is_singular( 'product' )

Cela apparaîtra sur toutes les pages de produits sauf une.

enter image description here

0
Christina

Ajoutez une condition après le nom de la fonction dans le code qui appelle votre widget.

if ( is_singular( 'product' ) ) 
    return:

Ou

if ( ! is_singular( 'product' ) ) 

Utilise le! NOT Logical operator avec la balise conditionnelle is_singular

0
Dev