2012-10-11 76 views
0

Live site.仅在一页上显示动态分区大小?

我的网站设置,从而显示了一个木制的背景(#above)图片或画廊,低于上一麻背景(#below)内容的其余部分。这适用于每个页面,但是投资组合页面 - 木制空间在选择特定画廊之前没有内容。

有没有办法有亚麻背景&内容(#below)显示,而不是简单的木制背景(#above),直到画廊已经选定? (如果是的话,是有可能有它似乎是从屏幕顶部向下滑动?)

的header.php

<body> 
<div class="above"> 
    <div id="header"> 
     <div class="logo"> 
      <a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/img/logo.png" alt="Urban Palate logo" id="logo" /></a> 
     </div><!-- end logo --> 
     <nav> 
      <ul> 
       <li><a href="?page_id=7"><img src="<?php echo get_template_directory_uri(); ?>/img/about.png" alt="Urban Palate intro" /></a></li> 
       <li><a href="?page_id=12"><img src="<?php echo get_template_directory_uri(); ?>/img/portfolio.png" alt="Urban Palate portfolio" /></a></li> 
       <li><a href="?page_id=15"><img src="<?php echo get_template_directory_uri(); ?>/img/blog.png" alt="Urban Palate blog" /></a></li> 
       <li><a href="?page_id=10"><img src="<?php echo get_template_directory_uri(); ?>/img/contact.png" alt="Urban Palate contact" /></a></li> 
      </ul> 
     </nav> 
    </div><!-- end header --> 

portfolio.php

<?php 
/* 
Template Name: Portfolio 
*/ 
?> 

<?php get_header(); ?> 

    <div class="gallery"> 
     <?php  
      if(is_page(24)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider1]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(26)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider2]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(28)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider3]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(30)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider4]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(32)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider5]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(34)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider6]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(36)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider7]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

     <?php  
      if(is_page(42)) { 
       // make your stuff here 
       echo do_shortcode('[rev_slider slider8]'); 
      } else { 
       // output standard content here 
      } 

     ?> 

    </div><!-- end gallery --> 
</div><!-- end above --> 
<div class="below"> 
    <div class="blurb"> 
     <img src="<?php echo get_template_directory_uri(); ?>/img/portfolio_blurb.png" alt="see who has experienced our fabulous + creative and beautiful + cutting edge decor firsthand" /> 
    </div><!-- end blurb --> 
    <div id="client-list"> 
     <?php wp_nav_menu(array('sort_column' => 'menu_order', 'container_class' => 'menu-header')); ?> 
    </div><!-- end client-list --> 


<?php get_footer(); ?> 

回答

1

有可以对上面的代码进行很多改进。调查switch声明,或至少消除所有else块。无论如何,

在你header.php,尝试

<body> 
<div class="above <?php if (is_page(1)) echo 'short'; ?>"> 
    <div id="header"> 
     <div class="logo"> 
     // etc... 

您将需要更改is_page(1)部分有正确的页码。我不知道如何用WordPress来解决这个问题,但是如果你可以为每个画廊做到这一点,你可以在空白的投资组合页面上做到这一点。

然后,在你的网站的CSS:

.above.short { 
    height: 200px; 
} 

我的解决办法是丑陋的,但它适合与你到了那里的PHP的其余部分。如果您为这项工作付费开发人员,请获得新开发人员。

有人知道WP可能会告诉你如何给div.above一个额外的类,而不诉诸像我所做的内联代码。这将是一个更好的解决方案。

+0

谢谢您的回答,它看起来是正是我需要的。 至于代码,我敢肯定你可以告诉,这是我第一次尝试这样的事情,并且是很多问答的结果,并阅读各种文章。 通过开沟'else',可能我只是有: '' – AMC

+1

Spot on :)我没有Wordpress安装来测试它,但我认为这个链接的代码可以代替你的整个'

'块:http://pastebin.com/2GpyciGW 。对代码粗鲁抱歉。侮辱有人试图学习是没有任何借口的。 –

+0

有点建设性的批评从来没有伤害任何人:) 并感谢您的额外帮助;该代码看起来更好。 – AMC

0

你可以用jQuery做到这一点。

例如:

// check if the gallery is empty and hide if it is. 
if ($('.above .gallery').contents().length == 0){ 
    $('.above').hide(); 
} 

或使用CSS来代替.hidedisplay:none或将高度设置为0。

$('.above').css('height', '0');