2012-08-31 16 views
5

Mi sitio se encuentra aquí: http://math.pixelworklab.com/home-studyPHP ocultar div en páginas específicas?

Busco para ocultar la barra de navegación sólo en dos páginas

Checkout

Cart

Básicamente evitar que el usuario se distraiga con otros enlaces mientras el registro de salida.

¿Cómo ocultaría este div en estas páginas utilizando una instrucción IF?

ACTUALIZACIÓN:

/* Navegación */

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() 
} 

Respuesta

4

¿Qué tal que sólo muestran la navegación si no es esas páginas:

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

Así que envolví mi nav div en esto y lo oculta en todas las páginas ... Agregué el código anterior ... – js111

+0

la lógica era en realidad lo opuesto que actualicé mi código, ver arriba, '! ==' ahora es '=== ' – Ibu

+0

ya veo que ... todavía no funciona hmm – js111

0

Bueno, lo que supongo podría hacer algo como:

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

¿Se pueden usar diferentes archivos css para estas páginas? Si a continuación, puede agregar una clase en su div, digamos optional_hide, y añadir en el archivo CSS para estos dos archivos:

div.optional_hide {display:none;} 

Para el resto de páginas de esta línea puede faltar.

+0

, no está en el encabezado. – js111

1

Usted puede utilizar la etiqueta condicional is page

Esto comprueba si las páginas se visualizan o no. Envuelva su código de menú de navegación dentro de la condición 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> 

} 
?> 

Espero que esto te ayude. ¡¡¡Aclamaciones!!!

0

Creo que @Grzegorz dio una solución muy simple y elegante!

En cualquier caso, puede utilizar el doble de clase div:

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

con el código de lo que quiere ser visto/oculto y un llamado a la CSS en páginas específicas de plantilla:

<style> 
.to_be_seen {color:red;...} 
.invisible {display:none;} 
</style> 
Cuestiones relacionadas