WordPress搭建企业网站
在看该文档之前需要对WordPress主题模板的层次架构有一定的了解。简单介绍如图:
更详细的WordPress主题模板的结构层次请见:wordpress主题结构层次图
一.WordPress搭建中小企业网站思路
WordPress是基于文章的博客程序,而企业或产品网站也是基于一篇篇的文章,所以用WordPress搭建企业网站是可行的。用WordPress建中小企业站模板的思路如下:
1) 大分类+子分类:
首先,根据需求明确企业网站的整体结构,需要几大类的内容,如分为1产品介绍,2技术中心,3关于我们,4 试用购买,这些内容可以放在网站的主菜单上。
然后,细化企业网站结构,既明确子分类,如:
由上图可以清晰的了解网站的结构,上图中 表示该文章分类的id号,因为WordPress本身有一个未分类和链接占用分类的1、2两个id号,我们只能从3开始,图中id为3、4、5、6的几个分类为大分类;而7、8、9、10为3的子分类,其他父子分类关系也如此。子分类可作为网站内页的side里的内容。值得一提的是, 表示文章,“关于公司”、“联系我们”、“合作伙伴”三个文章是直接属于大分类5,这个网站的“关于我们”内页side里既有分类又有文章,如何解决?下边会有介绍。现在整体的大思路应该很明确了就是 大分类+子分类。
2) 让每个大分类内页的side里显示子分类:
如图:
这是我们要的效果 , 因为我们每个大分类下面都要显示各自的子分类 , 所以在 sidebar.php 里的分类列表只写 <?php wp_list_cats('child_of=5'); ?> 已经不能满足我们的需求。因此需要写一个if判断语句:
这个if语句帮我们解决了在每个大分类下面调用其各自子分类。
<?php $post = $wp_query->post;
if ( in_category(' 3 ')|in_category('7')|in_category(' 8 ') |in_category(' 9 ')|in_category(' 10 ')) <! — 如果文章属于大分类3及其所有子分类7、8、9、10时-->
{ wp_list_cats('child_of= 3 ');} <! — 则显示分类3的子分类-->
elseif ( in_category(' 4 ') |in_category(' 11 ')|in_category(' 12 ') |in_category(' 13 ')|in_category(' 14 '))
{ wp_list_cats('child_of= 4 ');}
elseif ( in_category( 5 ')| in_category('1 5 ')|in_category('1 6 '))
{ wp_list_cats('child_of= 5 ');}
elseif ( in_category(' 6 '))
{ wp_list_cats('child_of= 6 ');}
?>
但上面我们所提到的“关于我们”的side里是“文章+子分类”的列表,所以以上代码也不能完全满足,需要在 { wp_list_cats('child_of= 5 ');} 里加入已发文章的静态链接。如下:
{
?>
<li><a href="<?php bloginfo('url'); ?>/about/company/" title="关于公司">关于公司</a></li>
<li><a href="<?php bloginfo('url'); ?>/about/contact/" title="联系我们">联系我们</a></li>
<li><a href="<?php bloginfo('url'); ?>/about/partner/" title="合作伙伴">合作伙伴</a></li>
<?
wp_list_cats('child_of= 5 ');
}
现在side里“文章+子分类”的列表,我们很好的解决了。由此启发,当我们在点击各大分类下side列表不一定都用分类,因为如果是分类的话,右边调用的是 category .php, 显示分类页。如果每个大分类下都是这样显示分类列表的话,看起来还是很像blog,不像企业网站。所以我们的网站构架要改一下了,如图:
正如图中所示有两种方法实现:一是写一篇该子分类概述的文章,文章里有其他该子分类的链接,把概述文章的链接用刚才所述的方法写在sidebar.php里;另外一种是写一个子分类概述page页面把链接写在sidebar里。这里我们采取第一种方法。因为用page的话会导致页面过多不好管理,而且page的url地址为: http://域名/页面缩略名/ 的结构,这样就不好识别是哪个分类的内容了。改完的代码如下:
<ul >
<?php $post = $wp_query->post;
if (in_category(' 3 ')|in_category('7')|in_category(' 8 ') |in_category(' 9 ')|in_category(' 10 '))
{
?>
<li><a href="<?php bloginfo('url'); ?>/products/products-all/production/" title="产品概括">产品概括</a></li>
<li><a href="<?php bloginfo('url'); ?>/products/features/functions-and-features/" title="功能特点">功能特点</a></li>
<li><a href="<?php bloginfo('url'); ?>/products/strength/strength/" title="核心优势">核心优势</a></li>
<li><a href="<?php bloginfo('url'); ?>/products/application/report-appdeployment/" title="部署与运用开发">部署与运用开发</a></li>
<?
}
elseif (in_category('4')|in_category('1 1 ')|in_category('1 2 ')|in_category(' 13 ')|in_category(' 14 '))
{ wp_list_cats('child_of=4');} / * 该分类是“技术中心”,需要它为子分类,就直接调用其子分类 */
?>
elseif ( in_category('5')|in_category(' 15 ')|in_category('1 6 '))
{
?>
<li><a href="<?php bloginfo('url'); ?>/about/company/" title="关于公司">关于公司</a></li>
<li><a href="<?php bloginfo('url'); ?>/about/contact/" title="联系我们">联系我们</a></li>
<li><a href="<?php bloginfo('url'); ?>/about/partner/" title="合作伙伴">合作伙伴</a></li>
<li><a href="<?php bloginfo('url'); ?> /about /news/" title="企业新闻">企业新闻</a></li>
<li><a href="<?php bloginfo('url'); ?> /about /cases/" title="成功案例">成功案例</a></li>
<?
}
elseif ( in_category('6'))
{
?>
<li><a href="<?php bloginfo('url'); ?>/about/download/" title="下载试用">下载试用</a></li>
<li><a href="<?php bloginfo('url'); ?>/about/purchase/" title="购买产品">购买产品</a></li>
<?
}
</ul>
至此,sidebar里的子分类(文章)列表已经改完。
接着,需要在子分类上标上该大分类的名称,这一点我仍是采用了if语句将其写死。
<h3>
<?php
if ( in_category(' 3 ')|in_category('7')|in_category(' 8 ') |in_category(' 9 ')|in_category(' 10 ') ) { ?>产品介绍<?php }
elseif ( (in_category('4')|in_category('1 1 ')|in_category('1 2 ')|in_category(' 13 ')|in_category(' 14 ') ) { ?>技术中心<?php }
elseif ( in_category('5')|in_category(' 15 ')|in_category('1 6 ') ) { ?>关于我们<?php }
elseif ( in_category('6')) { ?>试用购买<?php }
?>
</h3>
至此,sidebar里的title名称也写完了。sidebar里的子分类(文章)模块内容也全都完成,如若需要可在下面再写点热点链接之类的内容。
最后,single.php、category.php、 archive.php (企业网站它的用处不大)、index.php等都可以调用该sidebar.php了。
3) 菜单调用大分类
Sidebar做好了,下面就让菜单上显示调用的大分类,调用 <?php wp_list_cats('include=3,4,5,6'); ?> 这句函数即可。include=ID:是我们调用的大类,多个大类的ID号用英文“,”隔开。
4) 修改category.php
现在菜单上列出的是大分类调用,这样每个大分类下面就都会显示分类列表,但如果现在有的大分类不想显示分类列表,而显示该分类的第一篇文章,就需要来修改category.php文件了。思路和修改sidebar差不多。最初 category.php的结构应该如下:
<?php get_header(); ?>
<?php get_sidebar(); ?>
<div id= ” content ” >
/*这里是调用分类的内容*/
</div>
<?php get_footer() ?>
现在因为需要点击大分类3、5、6时,页面上展示的是文章而非分类列表,所以在 <div id= ” content ” ></div>里添加一个if语句:
把以前的 /*这里是调用分类的内容*/ 的 中。
而需要在结构中添加的是大分类3、5、6中 这一块的内容,代码如下
<?php query_posts(' name=production '); ?>
<div class="post" >
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" class="homesidetext1" title="<?php the_title() ?>"> <?php the_title() ?> </a> </h2>
<div class="entry">
<?php the_content('Read the rest of this entry »'); ?>
</div>
<?php endwhile;?>
</div>
query_posts ()是获取文章,其内参数可用 ’ p=文章ID ’ 或 ’ name=文章缩略名 ’ 来调用想放在大分类下首页的文章;
<h2></h2>里是文章名称;
the_content(); 是调用文章内容。
这样就可以在菜单中列出的大分类上点击,出来想要的文章或分类列表了。
以上几点就是企业级网站全站用WordPress搭建的大致思路。
二.注意事项
1、 这样的主题模板要基于WordPress的数据库,因为在写side时用到了分类的id号。
2、 正是因为第一条,这样的WordPress主题模板没有通用的,只能因企业而异。
3、 永久链接最好用 /%category%/%postname%/ (分类+文章缩略名)的形式,这样url地址会看起来更有结构性,看起来也更像企业或产品网站。
效果可见:www.bonzerreport.com,是不是从中找不到blog的影子了。
45 条留言 我要留言
1 楼 Hanry | 2008-09-13 at 6:09 上午
你好,我喜欢bonzerreport, 请问能把这个模板有偿授权给我用么? 或者请您帮我定制一个模板。
2 楼 Hengzer | 2008-09-14 at 3:10 上午
如果产品较多,应该如何实现? 单纯的分类肯定是不能实现的,希望讨论一下
Gtalk:Hengzer@Gmail.com
3 楼 风月 | 2008-09-18 at 1:33 下午
学习中...
准备上手。
4 楼 重庆seo | 2008-10-17 at 3:02 上午
思路不错!
5 楼 leaveoff | 2008-11-21 at 4:37 上午
思路不错,俺之前做了一个,由于行业不同,我调用custom field,挺好用的
6 楼 MarsLau | 2008-11-21 at 5:54 上午
谢谢各位关注,这篇只是自己认为从wordpress主题下手建立中小企业站可行一套的思路,但还是有不妥的地方,有机会可以相互交流一下
@leaveoff:把你做的展示一下吧,大家取长补短
7 楼 花果山寨 | 2008-12-02 at 8:05 上午
最近正考虑用WP做一个企业网站,但由于自己对模板的制作不熟悉,所以希望提供一下你做的那个企业模板给我,不知道可不可以?谢谢!盼回复!
8 楼 Mars Lau | 2008-12-09 at 3:58 下午
刚看到,很抱歉,该模板不能给你,不过有机会我们可以相互学习交流这方面的问题
9 楼 牧狼羊 | 2009-03-12 at 1:08 上午
其实我也很想要这个模板,可惜。。。
10 楼 Mars Lau | 2009-03-12 at 11:55 下午
谢谢你的认可,但那个毕竟是专门给博计报表做的,所以不太好拿出来共享。挺喜欢你的博客的,有时间多交流吧。
11 楼 lostindream | 2009-03-17 at 4:32 下午
真希望能分享下这企业主题,我想学习下,可以发给我么?多谢
12 楼 独木 | 2009-03-20 at 2:33 下午
@ MarsLau
我是独木,我在此声明一下,发布这篇文章时确实打不开你的博客,所以留了一句博客关闭,希望别误会了
确实是一篇难得的好文章,多谢!
13 楼 marslau | 2009-03-20 at 3:42 下午
呵呵,可能是服务器提供商当时出了点问题吧
首先谢谢你认可我的文章,并帮我推广,不过我希望你能把你博客和投稿的文章里关于“本博已关闭”类似的话语去掉,并加上本文链接,有劳了。
14 楼 独木 | 2009-03-22 at 11:02 上午
@ MarsLau
转载一篇文章出了很多状况,所以我索性就吧文章删除了,见谅
不过还是要为你的好文章喝彩
15 楼 leesum | 2009-03-24 at 9:00 上午
最近也在用WP捣鼓企业站,好久没碰代码了有点生疏
16 楼 思亭 | 2009-04-07 at 8:38 下午
我不想要模板,我只要学习,学习,自己动手做才是硬道理。
17 楼 jason | 2009-04-14 at 12:35 下午
正在学习wp主题制作 越学越感觉自己无知...
18 楼 思亭 | 2009-04-14 at 10:23 下午
哟,没想到我又搜索到这里来了,真是有缘呀,呵呵
我准备干点什么 了:)~
19 楼 石英砂 | 2009-04-22 at 11:36 上午
没怎么用过 ,怎么样呀 !!
20 楼 各种虾米 | 2009-04-25 at 8:59 下午
你好啊,能不能把这个模板送给我啊~~~·
21 楼 小沈阳吧 | 2009-06-07 at 5:53 下午
天哪 用wordpress搭建企业网站真么麻烦啊 看到这么些代码 头都大了 呵呵
22 楼 王觅蕤 | 2009-06-17 at 12:36 下午
学习了!自己还是菜鸟,先把你的文章学习完再来好好做个站!谢谢分享!
23 楼 聚丙烯酰胺 | 2009-07-01 at 11:15 下午
路过,顶一下子啊!
24 楼 JayCai | 2009-07-04 at 1:19 下午
能不能把这个共享一下?
25 楼 shuxiong | 2009-07-31 at 4:26 上午
教程是写的挺好的!但是可行性就不是很好了~!
26 楼 marslau | 2009-07-31 at 9:02 上午
@shuxiong:该文章只是提供一个思路,称不上是什么教程,很多地方可以使用变通的方法实现。
27 楼 shuxiong | 2009-07-31 at 9:50 上午
有空,我们多点交流交流吧!
28 楼 牧狼羊 | 2009-09-29 at 9:36 下午
呵呵,有时间常交流。
GT:YuJanz#gmail.com
29 楼 国产变频器 | 2009-10-15 at 9:48 上午
比较喜欢用joomla
30 楼 tangut | 2009-10-27 at 9:18 下午
可以订做网站吗
31 楼 哈哈 | 2009-11-09 at 5:26 下午
站长,你可以给我定做吗,付费给你
QQ136587570
32 楼 星网 | 2010-03-02 at 10:29 下午
不知道我有没有机会尝试~~
33 楼 weell | 2010-03-03 at 1:40 上午
站长,你好。我按照你的方法一步一步操作。最后没有办法切换大分类 只显示ID为1的子分类。请教是什么原因!感谢!
34 楼 viacreative | 2010-12-22 at 1:07 下午
您的教程挺好,可我是菜鸟,呵呵
可以有偿请您给搭建一个wp企业网站么? 我的qq:386255320 不胜感谢!
35 楼 joe | 2011-04-14 at 10:21 上午
在各大分类中调用子分类中:$post = $wp_query->post
我在按教程中的说明做的时候,这句好像无法获取到当前文章的数据,在实际显示中,边栏并没有显示出当前的子分类。而去掉这句内容后,只有在大分类中能在边栏的子分类,在下次分类和文章中就无法显示了。请问是什么原因。
36 楼 品牌文胸 | 2011-04-23 at 6:34 下午
好看!绝对可以出书
37 楼 herry | 2014-05-03 at 4:48 下午
WordPress 3.9最新版本做出了很多内容管理的易用性改进,可是针对网页设计师定制网站这方面来说有点失望,没有降低定制网站的难度,还是要学习PHP和了解复杂的函数结构,真想WordPress能有像企户动企业建站平台那样的网站定制方式,利用HTML扩展属性,就能绑定动态数据,毫无难度,也毫无限制地快速定制网站。对于一个使用WordPress 6年的设计师来说真纠结啊。
Trackbacks
请 登陆 评论