在用joomla建过几个网站之后,开始尝试用wordpress建立网站,毕竟用wordpress建立的网站在自定义上面操作上显得会更加方便一点,当然joomla也有它自身的强大之处。两者都是PHP编写的,其能做的事在大神眼里面肯定是没什么区别的
下面的该xsbrand免费wordpress模板的下载地址:
链接: http://pan.baidu.com/s/1gfCbxa7 密码: adzs
一、其主题的演示主页:
1. 其Logo的设置位置:
2. 其幻灯片的设置位置:
3. 公司简介和联系我们以及新闻列表展示设置:
4. 包括底部信息设置:
5.当然,刚开始安装主题的时候,是没有菜单导航的,所以说需要在后台菜单里面设置导航菜单,当然在设置的导航菜单的前提是确定,页面以及分类目录的添加:
7. 然后主页的基本的样子已经和演示网址接近了,接下来去看首页的源码,也就是index.php,除了get_header(); get_footer(); 主体内容:
(1)幻灯片:
<?php get_template_part( 'content/slider' ); ?>
* get_template_part() :
理解类似于require_once() ,include,get_header(),get_footer()相似的功能,大大减少了代码的重复,当填写一个参数的时候,会按照路径处理:
get_template_part( 'content/slider' ) -> 加载的是content文件夹下面silder.php文件
get_template_part(' content/slider ','custom') -> 加载的是content文件夹下面slider-custom.php文件
公司简介和联系我们可以通过:acf自定义字段插件:
8. 在加载新闻列表的时候,通过query_posts();配置参数,实现不同分类目录,固定条数,指定顺序的新闻列表(也包括右侧的指定文章图片轮播项)
$args = array(
'posts_per_page' => 10, // 显示多少条
'orderby' => 'date', // 时间排序
'order' => 'desc', // 降序(递减,由大到小)
'ignore_sticky_posts' => 1 ,
//ignore_sticky_posts 意为是否显示置顶最新文章在query_posts控制的列表上,默认值为0,不排除置顶文章。返回文章列表时,仍以自然顺序将曾经置顶的文章安插在列表中,也就是说你排除的置顶文章只适用于某文章列表上
'category_in' => $cate2->term_id,
);
query_posts($args); while (have_posts()) : the_post());
//输出内容
wp_reset_query();
9. 其他页面模板文件解析:page.php
其核心有: get_header(); get_footer(); get_template_part('content/content-page'); get_sidebar ('left');
10. 分类页面模板文件解析 : categpry.php
其核心有:
get_header() get_footer() get_sildebar('right')
the_crumbs() -> 面包屑导航
get_template_part( 'content/content', get_post_format() ) -> 加载content文件夹下文件
get_post_format() -> 获取文章分类信息
wpdx_paging_nav(); -> 文章分类
11. 文章页面模板解析 : single.php
get_header() get_footer() get_sildebar('right')
get_template_part( 'content/content-single');
if (get_previous_post()) { previous_post_link('下一篇: %link');} else {echo "没有了,已经是最后文章";}
if (get_next_post()) { next_post_link('上一篇: %link');} else {echo "没有了,已经是最新文章";}
12. search.php , archive.php 与 category.php 模板风格保持一致
13.当然还有其自定义字段插件的配置,详情请见我的其他博文“Advanced Custom Fields PRO 的使用”
14. 好了,下面我们来解析侧边栏模板sidebar.php里面的内容:先从sidebar-left.php文件解析,在模板安装后,每个页面时没有侧边栏的,所以我们根据内容新建两个菜单栏'Sanyi-menu' , ' Service-intro' :
然后在sidebar-left.php文件里面调用:
$menu = 'Sanyi-menu';
$nav_menu = wp_get_nav_menu_object($menu);
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ));
$menu2 = 'Service-intro';
$nav_menu2 = wp_get_nav_menu_object($menu2);
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu2 ));
但是这样会把两个菜单都会显示出来,所以说我澳门应该做一些判断处理:(根据当前页面标题来判断是否显示侧边栏,或者说显示那一块侧边栏)
获取页面标题:
$current_id = get_queried_object_id();
$the_title = get_the_title($current_id);
创建两个菜单页面标题数组:
//三一介绍 页面菜单
$menu_array_01 = array();
array_push($menu_array_01,'三一介绍','企业文化','社会责任','联系我们');
//服务简介 页面菜单
$menu_array_02 = array();
array_push($menu_array_02,'服务简介','技术研究','经营业绩');
//遍历判断:
foreach ($menu_array_01 as $value) {
if($value == $the_title)
{
$menu = 'Sanyi-menu';
$nav_menu = wp_get_nav_menu_object($menu);
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ));
}
}
foreach ($menu_array_02 as $value) {
if($value == $the_title)
{
$menu2 = 'Service-intro';
$nav_menu2 = wp_get_nav_menu_object($menu2);
wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu2 ));
}
}
注:当然也可在后台菜单的位置修改
15.接下来我们来看下header.php以及footer.php
header.php文件里面大部分内容都是通过自定义字段接收后台设置的字段数据实现的,对于优化,请求了一个content文件夹下面的seo.php文件:
get_template_part( 'content/seo' );
至于seo.php文件里面的内容,也主要是根据加载的页面,在每个页面配置好对应的自定义字段‘description’以及 ‘keywords’的关键字和描述