wordpress主题开发文档.docx
- 文档编号:20992354
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:32
- 大小:30.20KB
wordpress主题开发文档.docx
《wordpress主题开发文档.docx》由会员分享,可在线阅读,更多相关《wordpress主题开发文档.docx(32页珍藏版)》请在冰豆网上搜索。
wordpress主题开发文档
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()两个参数,这里就不进一步追进了。
使用方法如下:
%
变量$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=版本
如果想要赋值调用的话,我们需要使用Wordpress给我们提供的另一个函数get_bloginfo(),
例如:
"
网站优化:
如果已经有了固定的域名,有了成型的网站,设计的主题是私有主题(即设置之初就没有打算共享),基于以上几个条件,bloginfo函数用处似乎不大。
使用实例:
下面代码在中。
(
主题首页
bloginfo获取站点名称:
bloginfo获取站点描述:
----------------------------------------------
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的博客描述
这个函数对应的有add_option()就是添加了。
get_template_directory_uri()主题目录
检索当前主题的模板目录的URI:
这个没说什么说的了。
数据库操作函数(能直接添加删除查询的)
@
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);
{
;
且有一个默认的值,就是不写参数的时候,使用的是默认值。
看一个很简单的例子:
这样输出的结果,html标签如下:
"
?
有点乱,但是应该看的清楚,这是默认的生成结果,我们可以通过参数改变它的标签与id级class的值来改变样式,定义自己喜欢的样式。
如下面的配置例子:
% array( 'theme_location'=>'', .......................... 描述: 加载一个制定的模板到另一个模板里面(不同于包含header,sidebar,footer). 使得一个主题使用子模板来实现代码段重用变得简单 用于在模板中包含指定的模板文件,只需用指定参数slug和name就可以包含文件{slug}-{name}.php,最重要的功能是如果没有这个文件就包含没有{name}的.php文件文件 使用方法: * 参数: $slug(必须)通用的模板名 $name(可选)指定的模板名 示例: 使用在子主题里面 假设主题文件夹wp-content/themes下父主题是twentyten子主题twentytenchild,那么下面的代码: php的require()函数将按下面优先级包含文件 1.wp-content/themes/twentytenchild/ themes/twentytenchild/ themes/twentyten/ 4.wp-content/themes/twentyten/ 导航(这个例子很烂,但却是另一种使用思路) 使用通用的文件给主题添加导航条: - ',true);> 这样,就可以根据你不同的文章类型去显示文章评论了。 用法上是不是跟get_template_part()有点类似呢? 至于$separate_comments准确的意思,我也没搞明白,不过官方默认主题一直都是true的所以我也就跟进了。 之前研究
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wordpress 主题 开发 文档