2012-08-31 8 views
5

Il mio sito si trova qui: http://math.pixelworklab.com/home-studyPHP hide div su pagine specifiche?

Sto cercando di nascondere la barra di navigazione solo su due pagine

Checkout

Cart

In sostanza impedisce all'utente di essere distratti con altri collegamenti, mentre check-out

Come nascondere questo div su queste pagine utilizzando un'istruzione IF?

UPDATE:

/* navigazione */

if (! function_exists('woo_nav')) { 
    function woo_nav() { 
     global $woo_options; 
     woo_nav_before(); 
?> 

<?php if (strpos($_SERVER['REQUEST_URI'],'/checkout/') === false 
     || strpos($_SERVER['REQUEST_URI'],'/cart/') === false):?> 

    <div id="navigation" class="col-full"> 
     <?php woo_nav_inside(); ?> 
     <?php 
     if (function_exists('has_nav_menu') && has_nav_menu('primary-menu')) { 
      wp_nav_menu(array('sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'primary-menu')); 
     } else { 
     ?> 
     <ul id="main-nav" class="nav fl"> 
      <?php 
      if (get_option('woo_custom_nav_menu') == 'true') { 
       if (function_exists('woo_custom_navigation_output')) 
        woo_custom_navigation_output("name=Woo Menu 1"); 

      } else { ?> 

       <?php if (is_page()) $highlight = "page_item"; else $highlight = "page_item current_page_item"; ?> 
       <li class="<?php echo $highlight; ?>"><a href="<?php echo home_url('/'); ?>"><?php _e('Home', 'woothemes'); ?></a></li> 
       <?php wp_list_pages('sort_column=menu_order&depth=6&title_li=&exclude='); ?> 
      <?php } ?> 
     </ul><!-- /#nav --> 
     <?php } ?> 

     <?php endif;?> 
    </div><!-- /#navigation --> 
<?php 
     woo_nav_after(); 
    } // End woo_nav() 
} 

risposta

4

Che ne dite di visualizzare solo la navigazione se non è quelle pagine:

<?php if (strpos($_SERVER['REQUEST_URI'],'/checkout/') === false 
     || strpos($_SERVER['REQUEST_URI'],'/cart/') === false):?> 
<div ... navigation ...</div> 
<?php endif;?> 
+0

Quindi ho avvolto il mio div nav in questo e lo nasconde su tutte le pagine .. Aggiunto il codice sopra .. – js111

+0

la logica era in realtà l'opposto ho aggiornato il mio codice, vedi sopra, '! ==' è ora '=== ' – Ibu

+0

ya vedo che ... ancora non funziona hmm – js111

0

Bene, suppongo potrebbe fare qualcosa come:

<?php if (!in_array($post->ID, array(id_of_checkout_page, id_of_cart_page)) { ?> 
    <div>...</div> 
<?php } ?> 
0

È possibile utilizzare diversi file CSS per queste pagine? Se è possibile aggiungere una classe nella vostra div, diciamo optional_hide, e aggiungere nel file css per questi due file:

div.optional_hide {display:none;} 

Per le pagine di riposo questa linea può mancare.

+0

nell'intestazione. – js111

1

È possibile utilizzare il tag condizionale is page

Questo controlla se le pagine vengono visualizzati o meno. Avvolgi il codice del tuo menu di navigazione all'interno della condizione else.

<?php 
if(is_page(array(42,43))) { 
// Returns true when the Pages displayed is either page ID 42 or 43. Change it to the page id of cart and checkout. 

} else { 

<div ... navigation ...</div> 

} 
?> 

Spero che questo ti possa aiutare. Saluti!!!

0

Penso che @Grzegorz ha dato una soluzione molto semplice ed elegante!

In ogni caso è possibile utilizzare doppia classe div:

<div class="to_be_seen invisible">Bla bla blah...</div> 

con il codice di ciò che si desidera essere visto/nascosta e un invito a presentare i CSS in pagine specifiche modello:

<style> 
.to_be_seen {color:red;...} 
.invisible {display:none;} 
</style> 
Problemi correlati