2013-06-27 5 views
0

Я пытаюсь иметь разные фоновые изображения заголовков в зависимости от того, к какой внутренней странице обращаются. Прямо сейчас у меня одинаковое изображение для всех внутренних страниц, и мне нужно, чтобы PHP-код был изменен так условно. Например, если im на странице контакта, 1.jpg будет установлен как заголовок img. Если на странице услуг, 2.jpg будет задан заголовок img и т. Д., Вы получите эту идею. Вот PHP код ив нашел в этой теме в.ч. им пытаются улучшить для друга:пользовательское фоновое изображение для каждой страницы 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 и много часов пытался найти способ добавить этот заголовок bg pic в зависимости от посещенной страницы. can not find im stuck .. – rid

+0

В зависимости от количества изображений/страниц вам может быть лучше использовать CSS. –

+0

добавьте другой тег или id в тег тела в зависимости от страницы и сделайте это с помощью css – Rooster

ответ

0

Ну .. Это больше структуры вещи. Как вы определяете, на какой странице они находятся? Пользователь щелкает ссылку? Используйте информацию, доступную для сервера, чтобы решить, какой контент должен обслуживать. Если вы используете один скрипт для обслуживания всех ваших страниц, вам необходимо передать ему параметр, когда пользователь нажимает на ссылку. Вы можете сделать это, установив ссылки на параметры.

Markup так:

<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.

Затем напишите сценарий, который берет имя страницы, а затем устанавливает фоновое изображение на это имя. Вы бы поместить это в файл 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(); ?>

Смежные вопросы