每个WordPress页面的自定义背景图片?

时间:2013-06-27 17:41:25

标签: php html css wordpress

我正在尝试使用不同的标题背景图像,具体取决于访问的内页。现在我对所有内页都有相同的图片,并且需要更改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> 

2 个答案:

答案 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(); ?>