WordPress-2次开发常用函数
时间:2010-04-16 来源:yuling520169
全函数列表请参见这里:《WordPress模板标签Template_Tags》。
这里只列出最常用的几个。先是重要的bloginfo(),不直接echo数值的函数为get_bloginfo();恩,不少函数都是按照这个规则写的,PS:并不是全部!echo出函数值的函数为xxx()的话,那么不echo出结果值的的函数为get_xxx()。
该函数范围的是WordPress的配置参数,主要参数和值举例如下,常用的黑体标出:
admin_email = admin@example
atom_url = http://example/home/feed/atom
charset = UTF-8
comments_atom_url = http://example/home/comments/feed/atom
comments_rss2_url = http://example/home/comments/feed
description = Just another WordPress blog
home = http://example/home这个是网站首页地址
html_type = text/html
language = en-US
name = Testpilot网站名称
pingback_url = http://example/home/wp/xmlrpc.php
rdf_url = http://example/home/feed/rdf
rss2_url = http://example/home/feed
rss_url = http://example/home/feed/rss
siteurl = http://example/home也是网站地址
stylesheet_directory = http://example/home/wp/wp-content/themes/largo
stylesheet_url = http://example/home/wp/wp-content/themes/largo/style.css主题文件夹下的style.css地址
template_directory = http://example/home/wp/wp-content/themes/largo主题包地址
template_url = http://example/home/wp/wp-content/themes/largo
text_direction = ltr
url = http://example/home
version = 2.7
wpurl = http://example/home/wp
举例,bloginfo(”wpurl “)会输出“http://example/home/wp”。
下边是主题中的几个常用函数。
< ?php get_header();//调用header.php ?> < ?php get_sidebar();//调用sidebar.php ?> < ?php get_footer();//调用footer.php ?>
//下边就比较多了,先来分类的。 < ?php wp_list_categories( $args ); ?> < ?php $args = array( 'show_option_all' => , 'orderby' => 'name', 'order' => 'ASC', 'show_last_update' => 0, 'style' => 'list', 'show_count' => 0, 'hide_empty' => 1, 'use_desc_for_title' => 1, 'child_of' => 0, 'feed' => , 'feed_type' => , 'feed_image' => , 'exclude' => , 'exclude_tree' => , 'include' => , 'current_category' => 0, 'hierarchical' => true, 'title_li' => __( 'Categories' ), 'number' => NULL, 'echo' => 1, 'depth' => 0 ); ?> //我估计这个是参数最复杂的一个函数了,改函数的用途自然是输出分类,对了,WordPress最多支持4级分类。
//另外经常用到的就是get_the_category(),例: < ?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?> 可以在循环读取分类后,输出每个分类的名称,该项全部变量为: cat_ID the category id (also stored as 'term_id') 分类ID cat_name the category name (also stored as 'name') 分类名称 category_nicename a slug generated from the category name (also stored as 'slug') slug名称 category_description the category description (also stored as 'description') 分类描述 category_parent the category id of the current category's parent. '0' for no parents. (also stored as 'parent') 父分类id category_count the number of uses of this category (also stored as 'count') 分类包含的日志数。
//接下去是判断分类的,通常用在sidebar和single里用来判断当前内容的分类信息。 < ?php in_category( $category, $_post ) ?> //例子: < ?php if ( in_category( 'pachoderms' )) { // 分类pachoderms } elseif ( in_category( array( 'Tropical Birds', 'small-mammals' ) )) { // 分类Tropical Birds和small-mammals } elseif ( in_category( array( '1', '5' ) )) { // 分类1,5 } else{ // & c. } ?>
//page页的,Displays a list of pages in a select (i.e dropdown) box with no submit button. 输入全部page的下拉选择框。 < ?php wp_dropdown_pages( $args ); ?> //$args默认设置,恩,只介绍常用的。 < ?php $args = array( 'depth' => 0, 'child_of' => 0,//父类page的ID 'selected' => 0, 'echo' => 1, 'name' => 'page_id',//page_id 'show_option_none' => //是否列出空项 'exclude' => //不包含的page_id 'exclude_tree' => //不包含某个page_id为顶点的page树 );?>
//Displays a list of WordPress Pages as links.直接输出page页,当然是带链接的。 < ?php wp_list_pages( $args ); ?> < ?php $args = array( 'depth' => 0, 'show_date' => , 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => , 'title_li' => __('Pages'),//列表前的标题,不要就留空。 'echo' => 1, 'authors' => ,//作者 'sort_column' => 'menu_order, post_title', 'link_before' => ,//内容输出前的内容 'link_after' => ,//内容输出后的内容,这2个通常用来做custom化。 'exclude_tree' => ); ?>
//友情链接部分 < ?php wp_list_bookmarks( $args ); ?> < ?php $args = array( 'orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => , 'category_name' => , 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1, 'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '<h2>', 'title_after' => '</h2>', 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', 'category_before' => '<li id=\"%id\" class=\"%class\">', 'category_after' => '</li>' ); //相对来说比较复杂的函数,不过基本不传任何参数,使用默认的就行。
//不怎么用的的wp_list_comments()回复列表函数,参数也不介绍了~ < ?php wp_list_comments();?>
接着嘛,是万用数据库查询函数,记住不是query_posts()而是WP_Query()哦!这个函数很强大,具体参照《WordPress-WP_Query》,里边也有讲为何不建议使用query_posts()的原因。
//最后是设计到具体内容后的函数部分,这部分通常是在循环体内,比如: < ?php if (have_posts()) : while (have_posts()) : the_post(); ?> //code here~ < ?php endif; ?> 也有带循环的: < ?php while (have_posts()) : the_post(); ?> //code here~ < ?php endwhile; ?> the_ID() the_title() 标题,常用 the_title_attribute() (Version 2.3) single_post_title() the_title_rss() the_content() 内容,常用 the_content_rss() the_excerpt() 日志中有more标签时输出more前的内容,参数是查看全部内容的链接名,重要 the_excerpt_rss() next_post_link() 后一个日志的链接,重要 previous_post_link() 前一个日志的链接,重要 next_posts_link() 后xx个日志,基本上用不到这个,而用WP-PageNavi插件实现 previous_posts_link() 同上 posts_nav_link() sticky_class() (Version 2.7) the_meta() the_tags() (Version 2.3) 日志tag,重要 the_time() 时间 the_date() 日期 the_permalink() 固定链接 wp_loginout() 登出 wp_register() 注册用户
下边么,介绍个主题,sandbox,用于主题制作最好的模板了,恩,搭配前边所有的内容,自己做个主题应该是没有任何问题了。~