2013-06-27 1 views
0

어떤 내부 페이지가 액세스되는지에 따라 다른 헤더 배경 이미지를 갖기 위해 노력하고 있습니다. 지금은 모든 내부 페이지에 대해 동일한 그림을 가지고 PHP 코드가 필요하므로 조건이 변경되었습니다. Contact page에 im이있는 경우, 1.jpg가 header로 설정됩니다. img. 서비스 페이지에서 2.jpg를 헤더 img 등으로 설정하면 아이디어를 얻을 수 있습니다.모든 WordPress 페이지에 대한 사용자 정의 배경 이미지?

 <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

와 함께 테마 내의 이미지 나는 PHP에서 좋지 않으며 방문한 페이지에 따라 해당 헤더를 추가하는 방법을 찾기 위해 수 시간 동안 노력했습니다. 캔트가 붙어있는 것을 알아낼 수 없습니다 .. – rid

+0

이미지/페이지의 양에 따라 CSS를 사용하는 것이 더 나을 것입니다. –

+0

페이지에 따라 body 태그에 다른 클래스 또는 ID를 추가하고 CSS가 – Rooster

답변

0

음 .. 그것은 구조 일은 더 : 다음은 친구를 개선하기 위해 노력이 포스트 테마 메신저에있는 PHP 코드 필자입니다. 어떤 페이지에 있는지 어떻게 결정하고 있습니까? 사용자가 링크를 클릭합니까? 서버에서 사용할 수있는 정보를 사용하여 제공 할 컨텐츠를 결정하십시오. 하나의 스크립트를 사용하여 모든 페이지를 제공하는 경우 사용자가 링크를 클릭 할 때 매개 변수를 전달해야합니다. 귀하의 링크가 매개 변수를 사용하게함으로써 이것을 할 수 있습니다.

과 같이 마크 업 :

<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 스크립트를 만드는 것보다 깨끗하게 유지하는 데 도움이됩니다.

0

WordPress의 백엔드에서이를 관리하려면 다음을 수행하십시오. WordPress 용 고급 사용자 정의 필드 플러그인 (http://wordpress.org/plugins/advanced-custom-fields/)을 사용할 수 있습니다. 이를 통해 모든 게시물에 심지어는 배경 이미지로도 입력 할 수있는 모든 페이지에 필드를 추가 할 수 있습니다.

그런 다음 header.php 템플릿 파일에 몸 태그에 어딘가에 단축 코드를 추가

<body background="(<?php the_field('background_image')" ?>)">

당신이에있어 어떤 페이지에 따라, 그 배경 이미지를 표시합니다.


프로세스를 자동화하고 싶다면 : "bg"라는 폴더를 만들고 페이지와 같은 이름의 이미지를 만들 수 있습니다. 예를 들어 about.php의 경우 about.jpg를 가질 수 있습니다.

그런 다음 페이지 이름을 사용하는 스크립트를 작성한 다음 배경 이미지를 해당 이름으로 설정합니다. 그런 다음 사용

$page = end(explode("/",$_SERVER['REQUEST_URI'])); 
$image = str_replace("php","jpg",$page); 

: 당신은 같은 템플릿 뭔가에 header.php 파일이 놓여지는 <body background="bg/<?php print $image ?>">

이것은 당신이 http://www.yoursite.com/bg/에서 이미지 파일을 유지하지만 당신은 또한 계속 단축 코드를 사용할 수 있다고 가정한다 <?php echo get_template_directory_uri(); ?>

관련 문제