我正在尝试使用不同的标题背景图像,具体取决于访问的内页。现在我对所有内页都有相同的图片,并且需要更改php代码以使其有条件。就像我在联系页面上,1.jpg被设置为标题img。如果在服务页面上,2.jpg被设置为标题img等,你就会明白。 这是我在这个wp主题中发现的PHP代码,我试图为朋友改进:
<div class="bgtop">
<?php
//display featured image if one exists
$featimage = get_bloginfo('stylesheet_directory') . "/images/pageheader.png";
if ((has_post_thumbnail( $post->ID ))&&(!is_single()&&(!is_category())) ){
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );
$featimage = $image[0];
}
?>
<div class="pageheader" style="background: url(<?php echo $featimage; ?> ); background-position: center top;">
<div class="centermenu">
<div class="pagelogo">
<!--<a href="<?php bloginfo('home'); ?>">
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/indexlogo.png" alt="logo" />
</a>-->
</div>
答案 0 :(得分:0)
嗯..这更像是一种结构性的东西。你如何确定他们所在的页面?用户是否单击链接?使用服务器可用的信息来决定要提供的内容。如果您使用一个脚本来提供所有页面,那么当用户单击链接时,您需要将参数传递给它。您可以通过使链接获取参数来实现此目的。
标记如下:
<a href='default.php?page=home'> Navigate To Home </a>
<a href='default.php?page=blog'> Navigate To Blog </a>
像这样的php:
if($_POST['page'] == "home")
echo $homeheader;
elseif($_POST['page'] == "blog")
echo $blogheader;
但是,通常你只需要创建多个包含一些常见元素(称为模板)的php页面。这有助于保持清洁,而不是制作一个提供整个网站的PHP脚本。
答案 1 :(得分:0)
如果您想在WordPress的后端管理它:您可以使用WordPress的高级自定义字段插件(http://wordpress.org/plugins/advanced-custom-fields/)。通过它,您可以在每个页面上添加一个字段,甚至每个帖子都允许您输入背景图像。
然后,在header.php模板文件中,在body标签的某处添加短代码:
<body background="(<?php the_field('background_image')" ?>)">
根据您所在的页面,它会显示该背景图片。
如果您希望该过程自动化:您可以创建一个名为“bg”的文件夹,其图像与您的页面同名。例如,对于about.php,你可以有about.jpg。
然后编写一个采用页面名称的脚本,然后将背景图像设置为该名称。您可以将其放在模板中的header.php
文件中,例如:
$page = end(explode("/",$_SERVER['REQUEST_URI']));
$image = str_replace("php","jpg",$page);
然后使用:
<body background="bg/<?php print $image ?>">
假设您将图像文件保存在http://www.yoursite.com/bg/
但您也可以使用短代码将这些图像保存在主题<?php echo get_template_directory_uri(); ?>