仅在一页上显示动态分区大小?
问题描述:
我的网站设置,从而显示了一个木制的背景(#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(); ?>
答
有可以对上面的代码进行很多改进。调查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
一个额外的类,而不诉诸像我所做的内联代码。这将是一个更好的解决方案。
答
你可以用jQuery做到这一点。
例如:
// check if the gallery is empty and hide if it is.
if ($('.above .gallery').contents().length == 0){
$('.above').hide();
}
或使用CSS来代替.hide
和display:none
或将高度设置为0。
$('.above').css('height', '0');
谢谢您的回答,它看起来是正是我需要的。 至于代码,我敢肯定你可以告诉,这是我第一次尝试这样的事情,并且是很多问答的结果,并阅读各种文章。 通过开沟'else',可能我只是有: '' –
AMC
Spot on :)我没有Wordpress安装来测试它,但我认为这个链接的代码可以代替你的整个'
有点建设性的批评从来没有伤害任何人:) 并感谢您的额外帮助;该代码看起来更好。 – AMC