WordPress外贸B2B网站建设有时候需要设置一张含Flash Intro动画的纯静态HTML页面作为首页,有利于迅速展现企业形象、树立产品服务品牌。而一般的Linux型PHP空间为了不影响WordPress等程序的正常使用,都把默认主页设置为index.php,这个时候如果你想把WordPress的index.php放在根目录下,但又想把index.php拿来做Flash的页面,则WordPress的运行将会出现问题。如果修改默认首页文件为index.html,然后让Flash动画结束后跳转到index.php,那么WordPress的自定义永久固定链接的功能也都失效了,而优秀的Permalink设置又是WordPress在SEO优化方面的重要特性之一,一定是不能舍弃的。
当然我们现在讲的情况是index.html与WordPress在同一空间目录下的情况,如果WP在子级目录之中的话,也就不必担心这方面的问题了。在近几年的企业建站过程中,接触过很多各式各样的问题,在研究的过程中也有了不少的心得体会。在此就针对静态HTML首页的问题,分享一下自己的经验,主要讲解两种不同的实现方法,哪种更合适需要针对WordPress主题模板的实际情况来决定。
方法一:静态HTML网页转换为WordPress页面模板
前提:网站所使用的WordPress主题内置Home之类的首页Page模板。
WordPress后台的阅读设置中,我们可以指定某张Page页面作为首页,用顶级网站域名便可直接访问这张页面。利用这个功能,我们可以考虑把index.html转化成WordPress的一个页面模板,将它赋予给一张空白的WP页面即可。这个方法的操作很简单,首先把index.html移动到WordPress当前主题模板文件夹之中,并把后缀改为.php,比如Landing.php,然后在这个网页代码的头部加上一行代码:
<?php
/*
Template Name: Landing-Page
*/
?>
以上代码的作用就是将这张网页注册为WordPress主题中的一个Page页面模板,代码之下的内容不需要去修改,Flash或是图文都不会因为后缀名的改变而有所影响。接下来我们在WordPress后台创建一张页面比如命名为Html登陆页,正文内容空白即可,在右侧的页面模板下拉列表中选择Landing-Page之后发布。然后根据主题模板本身的调试要求,添加Home页面比如设置链接别名为wp-home。
这些准备工作做好之后,接下来就可以设置效果了。在WordPress的后台的阅读设置中把指定为Html登陆页静态首页,保存之后就可以直接通过网站域名直接访问这张静态网页了。至于登陆页上的跳转链接,只需指定到链接地址你的域名/wp-home即可转向WordPress主题自身的真正首页。
方法二:变换WordPress本身的循环调用机制
之所以我们不能直接把HTML静态页转换成index.php生成模板,是因为WordPress的index.php 会一直执行循环调用的功能,如果更改了.htaccess 文件设置网站首页为 index.html ,那么WordPress内部的日志文章就会循环调用出错。现在讲的第二种方法,需要从WordPress的循环调用上作文章。首先在后台修改WordPress默认的固定链接形式,设置为除第一种之外的任何一个都行,然后在.htaccess中找到如下代码:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
在 # END WordPress 上面增加下面代码:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
这样我们就把网站目录中的index.html设置成了网站的首页,接下来改变WordPress的循环调用机制,复制一份index.php并重命名为home.php,我们要用home.php代替index.php实行WordPress的循环调用。找到wp-includes文件夹中的rewrite.php,找到如下代码:
var $index = 'index.php';
将它修改为:
var $index = 'home.php';
到这里基本就完成了,不过还要完善一下WordPress的搜索功能,搜索action的路径需要修改 searchform.php ,因为默认的WordPress 还是以根目录为搜索,所以需要更改为现在的首页:
action="<?php bloginfo('home'); ?>/home.php"
第二种方法涉及修改的地方比较多,但是在兼容性方面个人觉得要更好一点。之前遇到过一些WordPress企业主题,其本身Home页面模板如果不是直接用网站域名访问的话,诸如幻灯之类的模块存在失效的可能性。