制作wordpress主题会用到的函数及其作用
1. <?php language_attributes(); ?> 这个函数用于声明网页所使用的语言,如果你的主题是用于中文站点,而且文字方向是从左往右读那么在查看源码的时候会看到dir=”ltr” lang=”zh-CN”这么一小段。主要放在<html>里面。
2.<?php bloginfo(‘charset’); ?>这个函数用于声明网站的编码,这个编码可以在WordPress后台 – 设置 – 阅读,最后一个选项”页面和 feed 编码”那里设置,一般都是 UTF-8。
3.<?php wp_title( ‘|’, true, ‘right’ ); ?> 该标签显示或返回页面的标题。可定义一个分隔符也就是里面的’|’。
4.<?php bloginfo(‘name’); ?>用于输出博客网站的名称,可以在WordPress后台 – 设置 – 常规站点标题那儿修改。
5.<?php bloginfo( ‘description’ ); ?> 站点的描述,可以在WordPress后台 – 设置 – 副标题那儿修改。
6.<?php bloginfo(‘url’); ?>用于输出博客的”站点地址(URL)”,可以在WordPress后台 – 设置 – 常规那里找到。
7.<?php bloginfo(‘stylesheet_url’); ?>用于输出博 客的”style.css文件的地址”,如果你不知道这个地址是什么,可以打开你的网站首页,然后用浏览器的”查看源代码”功能来查看网页的源代码,查找 style.css,应该可以找到http://example/wp-content/themes/XXX/style.css使用了这个函数就省去了写这么长的地址。
8.<?php bloginfo(‘stylesheet_directory’); ?>用于输出博客的”style.css文件所在的目录”,如http://example/wp-content/themes/XXX。
9.<?php bloginfo(‘rss2_url’); ?>用于输出你的feed的网址,一般形式如: http://ccyzk.com/feed
10.<?php bloginfo(‘pingback_url’); ?>用于输出你的pingback的网址。(pingback大概意思就是说别人引用了你的文章也加上了你网站的链接,你就会受到pingback的信息。)
11.<?php wp_head(); ?> 这个函数是非常重要的,大家可以理解成我们装的插件和主题的接口,一些插件的作用是通过这个函数显示在主题上面的。还有一个是wp_footer()这个也是,不过它是放在footer.php里面的。
<head></head>结束后我们继续往下看,到了<body></body>这里面的东西就很多了。我们网站的内容都是放在<body></body>html标签之间的(这个不清楚的,大家可以先去网上搜下,磊子会在以后讲到html标签)。首先网站肯定需要你自己logo可以是文字也可以是图片。如果要用图片呢,我们就需要这个函数<?php bloginfo(‘template_url’); ?> 显示主题文件地址比如你的主题叫XXX,那么你的主题文件地址就是http://ccyzk/wp-content/themes/XXX,然后图片是放在images文件里面的,这样完整的代码是
<img src="<?php bloginfo('template_url'); ?>/images/logo.jpg" alt="" title="" /> //这里用到了html的图片标签img以及里面一些属性
这样做的好处是假如你本地测试后要传到空间上不需要自己再去修改图片地址。
我们继续往下看,我们可以在logo的右边加上搜索框,就像磊子博客上一样,那么用到的函数是<?php get_search_form(); ?> 这个是调用wp内置的搜索框,当然我们也可以自定义。
接下来是菜单导航。在wordpress之前的版本中我们常用到的菜单导航函数是<?php wp_list_pages(); ?> 但由于新版的wp后台有了菜单选项,这个方法很少用了,而是新的函数<?php wp_nav_menu(array( ‘theme_location’ => ‘primary’ )); ?>要使用这个函数还需要在functions.php里面激活这个功能,写法是<?php register_nav_menu( ‘primary’, __( ‘主菜单’) ); ?>
以上这些部分一般都是放在header.php里面的,原因就是它们都是公用的,你每个页面都会用到这些,所以呢在网站头部中如果是每个页面都会用到的可以放在header.php里面。放进去之后那其他文件需要在文件里面最顶端加上<?php get_header(); ?> 如果是调用footer.php在文件的最低端就上<?php get_footer(); ?>,侧边栏调用就是<?php get_sidebar(); ?>,昨天讲到文件结构时有个sidebar-page.php的文件,那调用代码就要写成<?php get_sidebar(‘page’); ?>。这样就把文件引入进来了。
其次网站主要内容部分,我们看博客首页的时候都是以列表的形式显示出来的,那么需要用到循环。把整个文章里面的标题和内容全部显示出来,代码是
<?php if (have_posts()) : //判断是否有文章,如果有的话显示下面内容 ?> <?php /* 开始循环 */ ?> <?php while (have_posts()):the_post(); ?> <?php the_title(); ?> //显示文章标题 <?php the_author();?> //显示文章作者 <?php the_time('Y-m-d H:i:s') ?> //显示文章发布时间,格式为2011-11-23 21:10:11 <?php the_category(',') ?>//显示分类名称用逗号','隔开 <?php the_tags(‘,’); ?> //显示标签名称用逗号','隔开 <?php the_excerpt(); ?> //显示文章摘要 <?php the_content(); ?>//显示文章内容 //这些都需要放在循环里才可以显示出来,还有下面这些需要在循环里面添加的。 <?php the_permalink(); ?> //获得每篇文章的链接,一般放在a标签里面 <?php echo get_author_posts_url( get_the_author_meta( 'ID' ) );?> //获取文章作者的链接同样也是a标签里面 <?php comments_popup_link(__('暂无评论', 'leizi'), __('1条评论', 'leizi'), __('% 条评论', 'leizi')); ?> //评论的链接以及一些设置,无评论时显示暂无评论,有一条时显示1条评论,多条时就是%条评论 <?php endwhile; ?> <?php /* 结束循环 */ ?> <?php else : //如果没有内容显示下面信息 ?> <?php echo '没有发布文章'; //php中用echo来输出内容,这个大家可以记住。以后看到就不陌生了。 ?> //以上是网站的主要内容部分用到的常用函数。
主要部分显示完之后如果需要有侧边栏.方法是:
<?php if ( ! dynamic_sidebar( 'post-sidebar' ) ) : ?><?php endif; //判断是否存在id是post-sidebar的侧边栏 ?> //然后你需要在functions.php文件里面激活 <?php function lei_widgets_init() { register_sidebar( array( 'name' => __( '首页', 'leizi' ), 'id' => 'post-sidebar', 'description' => __( '这是一个侧边栏小工具', 'leizi' ), 'before_widget' => '<div><ul><li id="%1$s">', 'after_widget' => '</li></ul></div>', 'before_title' => '<h2>', 'after_title' => '</h2>', )); } add_action( 'widgets_init', ‘lei_widgets_init' ); //通过这个方法,就可以在后台的小工具那儿使用叫首页的侧边栏了。
这样一个网站大概内容基本都显示出来了。还需要在详细页面single.php里面加上评论框,代码是<?php comments_template( ”, true ); ?> ,single.php里面内容显示的方法和主要列表内容显示的方法是一样的。把那些代码贴过去用就行。还有分类文件category.php,作者内容文件author.php,存档文件archive.php等,都可以用上面的循环来显示出来。
我们用到上面的代码就可以做一个主题出来了。在加上下面的一些判断。
<?php is_home(); //是否是首页 is_page(); //是否是页面 is_single(); //是否是文章详细页面 is_front_page(); //是否是主页 is_search(); //是否是搜索页面 ?>
is_404(),//是否是404页面 is_admin(),//是否是管理员 is_archive(),//是否是存档页面 is_attachment(),//是否是附件页面 is_author(),//是否是作者页面 is_category(),//是否是分类页面 is_date(), is_day(), is_feed(),//是否是时间,天以及订阅页面 is_tag(), //是否是标签页面。 //等等
原创文章,转载时必须以链接形式注明本文来自云中客,本文固定链接:http://vr.ccyzk.com/372.htm