我已经在我的盒子上安装了IIS7.5,包括php当然,我已经从我的实时服务器复制了我的wordpress网站并更改了db等中的url设置。
然而,当访问主页时,不会呈现header.php文件中关联的样式或元数据。看源代码,它改变了默认的php函数
<?php get_header(); ?>
包含header.php文件,它将以
的形式呈现给浏览器 <? get_header(); ?>
即在视图源中可以看到它。
其他php函数和包含和php一般似乎在其他文件中运行正常...我有mantisBT安装顺利运行,例如。
有没有人有任何想法可能导致这个?
TA
编辑:添加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('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></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">
更新: 仍然得到相同的问题,重新安装了PHP 5.3.8,检查编码,保存文件为utf-8没有BOM。仍然没有快乐。
<? get_header(); ?>
<div class="post">
更新2:
仍然没有这个工作,代码是wordpress主题的标准,我已经安装了另一个主题,它似乎工作正常,所以我怀疑这是一个IIS7问题。
我查看了文件的编码并确保一切都是utf-8。
我所有的wordpress核心文件都是完整的,并且是最新的。
答案 0 :(得分:1)
Wordpress模板文件中的这一行是一个php代码,应该在服务器端处理,当你用IIS调用页面时它不应该在源代码中可见
<?php get_header(); ?>
检查您的php安装并手动重写PHP-Open标记<?php
和PHP-Close标记?>
。标签之间也可能存在编码问题。另请尝试使用其他编辑器编辑文档,或尝试将编码类型更改为UTF-8。如果它仍然失败,那么在这里附上你的Template header.php。
答案 1 :(得分:1)
如果您未在代码中使用任何<?xml ?>
,则可以尝试将short_open_tag 1
添加到php.ini中。看起来您的环境可能正在从标记php
中剥离<?php
,如果您使用的是PHP 5.3+ short_open_tag
,则默认情况下处于禁用状态,并且不会呈现。
首选项是禁用short_open_tag
,并且值得查看从php
删除<?php
的内容,但将配置设置设置为1可能至少让它现在起作用。
答案 2 :(得分:1)
而不是<?php get_header(); ?>
尝试直接包含方法<?php include_once("header.php"); ?>
,让我知道发生了什么。
<?php get_footer(); ?>
也可以正常工作,也可以在源代码中显示。感谢
答案 3 :(得分:0)
似乎有一些问题在一定程度上帮助解决了这个问题......
~
。test.xyz.com
地址添加到主机文件index.php
主题文件并重写了对get_header函数的调用。结果:
localhost/path/to/index.php
现在正常工作,并按预期加载标头。但并非所有内容(主页上都没有页面)。
test.xyz.com/index.php
未加载标题,仍显示<? get_header(); ?>
和页脚文件的等效文件。