wordpress主题开发文档.docx
- 文档编号:17339119
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:29
- 大小:29.73KB
wordpress主题开发文档.docx
《wordpress主题开发文档.docx》由会员分享,可在线阅读,更多相关《wordpress主题开发文档.docx(29页珍藏版)》请在冰点文库上搜索。
wordpress主题开发文档
个人主题的开发记录。
主要介绍函数的使用。
创建主题
在wp-content下面的themes文件夹中创建自己主题的文件夹。
我的文件夹名称是zingson。
在文件下面创建文件与文件,一个主题中,这两个文件是必须的,其它的一些文件后面再加。
这两个文件建好之后,去后台就可以看到自己添加的主题,启用主题,打开首页能看到你的内容了。
文件说明
文件中必须含有主题的注释头信息。
以下是默认主题的文件:
/*
ThemeName:
TwentyTwelve
ThemeURI:
themes/twentytwelve
Author:
theWordPressteam
AuthorURI:
Description:
The2012themeforWordPressisafullyresponsivethemethatlooksgreatonanydevice.Featuresincludeafrontpagetemplatewithitsownwidgets,anoptionaldisplayfont,stylingforpostformatsonbothindexandsingleviews,andanoptionalno-sidebarpagetemplate.Makeityourswithacustommenu,headerimage,andbackground.
Version:
License:
GNUGeneralPublicLicensev2orlater
LicenseURI:
light,gray,white,one-column,two-columns,right-sidebar,flexible-width,custom-background,custom-header,custom-menu,editor-style,featured-images,flexible-header,full-width-template,microformats,post-formats,rtl-language-support,sticky-post,theme-options,translation-ready
TextDomain:
twentytwelve
Thistheme,likeWordPress,islicensedundertheGPL.
Useittomakesomethingcool,havefun,andsharewhatyou'velearnedwithothers.
*/
上面内容是从默认主题复制过来的,大概可以看出什么意思了。
注释说明:
ThemeName:
这里填主题名称
ThemeURI:
这里填主题介绍的网址,没有就填你的博客网址吧
Description:
这里填主题的简短介绍
Version:
版本号
Author:
作者名
AuthorURI:
作者的网址
Tags:
标签,多个用半角逗号隔开
WordPress主题模板文件的列表。
用户的主题中也可能带有其它样式表单、图片或文件,不过下面这些文件在WordPress中都有着特殊意义。
:
主样式表单。
主题中必须包含文件,而文件中必须含有主题的注释头信息。
:
主模板。
如果用户使用的主题有自己的模板,必须具备文件。
Wordpress的实用函数
工具函数
bloginfo()
这个函数定义在wp-includes/文件。
函数源代码
*
*@paramstring$showWhattodisplay.
*/
functionbloginfo($show=''){
echoget_bloginfo($show,'display');
}
看到这里使用的是get_bloginfo()两个参数,这里就不进一步追进了。
使用方法如下:
phpbloginfo($show);?
>
变量$show是要显示的参数,包括以下字段属性:
name=站点名称
description=站点描述
admin_email=管理员邮箱
url=站点地址[usehome_url('/')instead]
wpurl=[usesite_url('/')instead]
stylesheet_directory=主题样式文件夹
stylesheet_url=主题样式路径
template_directory=主题文件夹
template_url=主题路径
atom_url========UTF-8
html_type=text/html
language=语言
text_direction=ltr
version=版本
phpbloginfo($show);?
>函数是把内容输出,表现在页面上,它的作用就像ehco;
如果想要赋值调用的话,我们需要使用Wordpress给我们提供的另一个函数get_bloginfo(),
例如:
php$bloginfo=get_bloginfo($show);?
>
网站优化:
如果已经有了固定的域名,有了成型的网站,设计的主题是私有主题(即设置之初就没有打算共享),基于以上几个条件,bloginfo函数用处似乎不大。
使用实例:
下面代码在中。
phpbloginfo('name');?
>
主题首页
bloginfo获取站点名称:
phpbloginfo('name');?
>
bloginfo获取站点描述:
phpbloginfo('description');?
>
----------------------------------------------
get_bloginfo()
这个函数上面见过了。
下面贴源代码出来:
(代码看不下去可以看后面的解释)
这个函数定义在wp-includes/文件。
functionget_bloginfo($show='',$filter='raw'){
switch($show){
case'home':
),$show).''.sprintf(__('Usethe%s
optioninstead.'),'url'));
case'url':
$output=home_url();
break;
case'wpurl':
$output=site_url();
break;
case'description':
$output=get_option('blogdescription');
break;
case'rdf_url':
$output=get_feed_link('rdf');
break;
case'rss_url':
$output=get_feed_link('rss');
break;
case'rss2_url':
$output=get_feed_link('rss2');
break;
case'atom_url':
$output=get_feed_link('atom');
break;
case'comments_atom_url':
$output=get_feed_link('comments_atom');
break;
case'comments_rss2_url':
$output=get_feed_link('comments_rss2');
break;
case'pingback_url':
$output=site_url('');
break;
case'stylesheet_url':
$output=get_stylesheet_uri();
break;
case'stylesheet_directory':
$output=get_stylesheet_directory_uri();
break;
case'template_directory':
case'template_url':
$output=get_template_directory_uri();
break;
case'admin_email':
$output=get_option('admin_email');
break;
case'charset':
$output=get_option('blog_charset');
if(''==$output)$output='UTF-8';
break;
case'html_type':
$output=get_option('html_type');
break;
case'version':
global$wp_version;
$output=$wp_version;
break;
case'language':
$output=get_locale();
$output=str_replace('_','-',$output);
break;
case'text_direction':
),$show).''.sprintf(__('Usethe%s
functioninstead.'),'is_rtl()'));
if(function_exists('is_rtl')){
$output=is_rtl()?
'rtl':
'ltr';
}else{
$output='ltr';
}
break;
case'name':
default:
$output=get_option('blogname');
break;
}
$url=true;
if(strpos($show,'url')===false&&
strpos($show,'directory')===false&&
strpos($show,'home')===false)
$url=false;
if('display'==$filter){
if($url)
$output=apply_filters('bloginfo_url',$output,$show);
else
$output=apply_filters('bloginfo',$output,$show);
}
return$output;
}
可以看出有连个参数get_bloginfo($show='',$filter='raw'),$show对应哪些值从里面的switch可以看到有哪些参数可以使用!
在bloginfo()的介绍里面有参数的详细说明。
get_option()获取options表key对应的值
get_option(参数)这个函数通过数据库wp_options表中的key获取value的值。
Wp_是表前缀,根据自己的表定。
上面的get_bloginfo()介绍中有使用到这个函数获取值。
可以回过头去看看。
使用实例:
这个能直接获取wp_options中的列option_name值为blogdescription的博客描述
phpechoget_option('blogdescription')?
>
这个函数对应的有add_option()就是添加了。
get_template_directory_uri()主题目录
检索当前主题的模板目录的URI:
phpechoget_template_directory_uri();? >/js/"type="text/javascript"> 这个没说什么说的了。 数据库操作函数(能直接添加删除查询的) wp_insert_post()插入一篇文章 源代码,自己去搜这个方法吧,只有连个参数,但第一个是数组,内容有点多。 functionwp_insert_post($postarr,$wp_error=false) 调用wp_insert_post()前需创建对象以传递组成文章的必要元素。 wp_insert_post()可自动填写默认表格,但用户需提供文章标题和内容,否则数据库写入不成功。 用户可在数据库中简单定义新关键字,之后就可以添加更多文章要素。 关键字应与数据库wp_posts表格中纵列名称相匹配。 ; $my_post['post_status']='publish'; $my_post['post_author']=1; $my_post['post_category']=array(8,39); 'ID'=>[ 'page_template=>[ 'ping_status'=>[ ? ] 'post_category=>[array( 'post_content'=>[ 'post_date'=>[Y-m-dH: i: s] 'post_date_gmt'=>[Y-m-dH: i: s] 'post_excerpt'=>[ 'post_parent'=>[ 'post_password'=>[ ? ] 'post_title'=>[ 'post_type'=>['post'|'page'] 'tags_input'=>[' 'to_ping'=>[ ? ] 与上面对应的是修改了,其实都一样: functionwp_update_post($postarr=array(),$wp_error=false) get_post_meta()查询postmeta数据 三个参数很明显了。 文章ID,key,$single是否是单一的,意思是key对应的值是否只有一个。 False的时候返回的是数组,true的时候返回字符串。 functionget_post_meta($post_id,$key='',$single=false){ returnget_metadata('post',$post_id,$key,$single); } add_post_meta()向postmeta表插入数据 源代码: Functionadd_post_meta($post_id,$meta_key,$meta_value,$unique=false) 不解释,很明白了。 update_post_meta修改postmeta表 修改 update_post_meta($post_id,$meta_key,$meta_value,$unique=false) 显示文章的函数 在这个文件中定义了很多的函数: wp-includes/ 看这个文件的时候进入wp-includes/的get_posts()方法,在执行the_content等方法的时候需要先执行get_post(); 通过这个文件里面的函数可以获取wp_posts表中的需要的字段值,下面不一一列出来了。 貌似也没啥意思,找出这个一看就知道了. 本人不太喜欢这一块儿内容,都是自己写的sql查询实现功能的,以后有时间再回来补充吧。 这里就没有做详细介绍了。 get_posts查询文章列表 源代码: functionget_posts($args=null){ $defaults=array( 'numberposts'=>5,'offset'=>0, 'category'=>0,'orderby'=>'post_date', 'order'=>'DESC','include'=>array(), 'exclude'=>array(),'meta_key'=>'', 'meta_value'=>'','post_type'=>'post', 'suppress_filters'=>true ); $r=wp_parse_args($args,$defaults); if(empty($r['post_status'])) $r['post_status']=('attachment'==$r['post_type'])? 'inherit': 'publish'; if(! empty($r['numberposts'])&&empty($r['posts_per_page'])) $r['posts_per_page']=$r['numberposts']; if(! empty($r['category'])) $r['cat']=$r['category']; if(! empty($r['include'])){ $incposts=wp_parse_id_list($r['include']); $r['posts_per_page']=count($incposts); 且有一个默认的值,就是不写参数的时候,使用的是默认值。 看一个很简单的例子: phpwp_nav_menu();? > 这样输出的结果,html标签如下:
有点乱,但是应该看的清楚,这是默认的生成结果,我们可以通过参数改变它的标签与id级class的值来改变样式,定义自己喜欢的样式。
如下面的配置例子:
phpwp_nav_menu(
array(
'theme_location'=>'',
..........................
phpendif;?
>
描述:
加载一个制定的模板到另一个模板里面(不同于包含header,sidebar,footer).
使得一个主题使用子模板来实现代码段重用变得简单
用于在模板中包含指定的模板文件,只需用指定参数slug和name就可以包含文件{slug}-{name}.php,最重要的功能是如果没有这个文件就包含没有{name}的.php文件文件
使用方法:
phpget_template_part($slug,$name)?
>
参数:
$slug(必须)通用的模板名
$name(可选)指定的模板名
示例:
使用在子主题里面
假设主题文件夹wp-content/themes下父主题是twentyten子主题twentytenchild,那么下面的代码:
phpget_template_part('loop','index');?
>
php的require()函数将按下面优先级包含文件
1.wp-content/themes/twentytenchild/
themes/twentytenchild/
themes/twentyten/
4.wp-content/themes/twentyten/
导航(这个例子很烂,但却是另一种使用思路)
使用通用的文件给主题添加导航条:
phpget_template_part('nav');
',true);?
>
这样,就可以根据你不同的文章类型去显示文章评论了。
用法上是不是跟get_template_part()有点类似呢?
至于$separate_comments准确的意思,我也没搞明白,不过官方默认主题一直都是true的所以我也就跟进了。
之前研究过一次,貌似这里指的类型是是否回复的意思。
the_permalink
comments_popup_link
comments_open
the_t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wordpress 主题 开发 文档