WordPress PHP-функция get_header и get_footer проблемы на IIS7.5 и localhost - PullRequest
0 голосов
/ 22 декабря 2011

Я установил IIS7.5 на свой компьютер для разработки, включая, конечно, php, и я скопировал свой сайт WordPress с моего живого сервера и изменил настройки URL в БД и т. Д.

однако при посещении домашней страницы ни один из стилей или метаданных, связанных с файлом header.php, не отображается. глядя на исходный код, он меняет функцию php по умолчанию

        <?php get_header(); ?>

для включения файла header.php, и он отображается в браузере как

        <? get_header(); ?>

Т. е. Оно отображается как таковое в источнике представления.

другие функции php и include, и php обычно работает нормально в других файлах ... у меня, например, mantisBT работает без сбоев.

  • Я уже пытался скопировать файлы с сервера снова и затем использовать новую установку WordPress.
  • Доступ к wp-admin, кажется, все работает нормально

У кого-нибудь есть идеи, что может быть причиной этого?

та

РЕДАКТИРОВАТЬ: добавление файла index.php - очень ванильно.

         <?php get_header(); ?>
         <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

         <!-- Begin Post: <?php the_title(); ?> --> 

            <div class="post">
            <h3 class="posttitle"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="title"><div class="postmetadata"><?php the_time('F jS, Y'); ?> by <?php the_author(); ?> in <?php the_category(', '); ?></div></div>

            <div class="entry">
                <?php the_content(); ?>
            </div>

<div class="tags"><div class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?></div></div><div class="comments"><div class="postmetadata"><?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> <img src="<?php bloginfo('template_directory'); ?>/images/comment.png" alt="Comments" /></div></div>
            </div><br /><br /><br /> 

         <!-- End Post: <?php the_title(); ?> -->

         <?php endwhile; ?>
            <div class="navigation">
                <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>
                <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
            </div>

         <?php else: ?>
          <p>Sorry, no posts matched your criteria.</p>
         <?php endif; ?>

         </div>
         <!-- Include Sidebars -->
         <?php include (TEMPLATEPATH . '/sidebarR.php'); ?>
         <?php include (TEMPLATEPATH . '/sidebarL.php'); ?>     
         </div>
         <?php get_footer(); ?>

РЕДАКТИРОВАТЬ: добавлен header.php - тоже довольно ванильный

     <!DOCTYPE html>
     <html>
     <head>
     <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />    
        <link href="style.css" rel="stylesheet" type="text/css"/>
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_head(); ?>
<title><?php if (is_single() || is_page() || is_archive()) { ?><?php wp_title('',true); ?> | <?php } ?><?php bloginfo('name'); ?></title>
     </head>
     <body>
     <div id="navwrap">
     <div id="nav">
        <div class="navpad">
            <ul class="navi">
     <li class="page_item"></li>
        </div>
     </div>
     </div>
     <div id="header">
        <div class="headpad">
             </div>
     </div>
     <div id="wrapper">
     <div id="content">

UPDATE: все еще получая ту же проблему, переустановили php 5.3.8, проверили кодировку, сохранили файлы как utf-8 без спецификации. все еще нет радости.

           <? get_header(); ?>



              <div class="post">

ОБНОВЛЕНИЕ 2:

По-прежнему это не работает, код является стандартным для темы WordPress, я установил другую тему, и она, кажется, работает нормально, поэтому я сомневаюсь, что это проблема IIS7.

Я посмотрел кодировку файлов и убедился, что все работает в формате utf-8.

все мои основные файлы WordPress не повреждены и обновлены.

Ответы [ 4 ]

1 голос
/ 22 декабря 2011

Если вы не используете <?xml ?> в своем коде, вы можете попробовать добавить short_open_tag 1 в ваш php.ini. Похоже, что ваша среда может убрать php из тега <?php, и если вы используете PHP 5.3+, * * * * * short_open_tag отключен по умолчанию и не будет отображаться.

Предпочтение должно быть отключено short_open_tag, и было бы целесообразно выяснить, что выводит php из <?php, но если задать для параметра конфигурации значение 1, оно может по крайней мере заставить его работать Теперь.

1 голос
/ 23 декабря 2011

Вместо <?php get_header(); ?> попробуйте метод прямого включения <?php include_once("header.php"); ?> и дайте мне знать, что произошло.

Также <?php get_footer(); ?> работает правильно или отображается в исходном коде.Спасибо

1 голос
/ 22 декабря 2011

Эта строка в файле шаблона Wordpress представляет собой php-код, который должен обрабатываться на стороне сервера, он не должен быть виден в исходном коде при вызове страницы с IIS

  <?php get_header(); ?>

Проверьте установку php и переписайте PHP-Open Tag <?php и PHP-Close Tag ?> вручную. Между тегами также может быть проблема с кодировкой. Также попробуйте отредактировать документ с помощью другого редактора или попробуйте изменить тип кодировки на UTF-8. Если это не помогло, прикрепите сюда свой header.php шаблона.

0 голосов
/ 09 января 2012

кажется, что некоторые проблемы помогли исправить это в определенной степени ...

  1. удалено ~ из имени папки в пути.
  2. добавлено test.xyz.com адресов к хост-файлу
  3. добавил эти адреса в II7.5
  4. обновлен wordpress db для отображения новых адресов.
  5. переписать index.php файла темы и переписать вызов функции get_header.
  6. потратил слишком много моей жизни на это ...

результат:

  1. localhost/path/to/index.php теперь работает и загружает заголовок, как и ожидалось. но не весь контент (страница не найдена на главной странице).

  2. test.xyz.com/index.php не загружает заголовок и по-прежнему показывает <? get_header(); ?> и эквивалент для файла нижнего колонтитула.

...