1

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

2 回答 2

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 脚本有助于使事情保持清洁。

于 2013-06-27T17:48:11.660 回答
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(); ?>

于 2013-06-27T18:12:39.427 回答