python中的locals()

思考一下我们对 current_datetime 的最后一次赋值: def current_datetime(request): now = datetime.datetime.now() return render_to_response('current_datetime.html', {'current_date': now}) 很多时候,就像在这个范例中那样,你发现自己一直在计算某个变量,保存结果到变量中(比如:前面代码中的now ),然后将这些变量发送给模板。特别懒的程序员可能注意到给这些临时变量和 模板变量命名显得有点多余。不但多余,而且还要进行额外的键盘输入。 如果你是个喜欢偷懒的程序员并想让代码看起来更加简明,可以利用 Python 的内建函数 locals() 。它返回的字典对所有局部变量的名称与值进行映射。因此,前面的视图可以重写成下面这个样子: def current_datetime(request): current_date = datetime.datetime.now() return render_to_response('current_datetime.html', locals()) 在此,我们没有像之前那样手工指定 context 字典,而是传入了locals() 的值,它囊括了函数执行到该时间点时所定义的一切变量。因此,我们将now 变量重命名为 current_date ,因为那才是模板所预期的变量名称。在本例中, locals() 并没有带来多 大 的改进,但是如果有多个模板变量要界定而你又想偷懒,这种技术可以减少一些键盘输入。 使用 locals() 时要注意是它将包括 所有 的局部变量,组成它的变量可能比你想让模板访问的要多。在前例中,locals() 还包含了 request 。对此如何取舍取决你的应用程序。 最后要考虑的是在你调用 locals() 时,Python 必须得动态创建字典,因此它会带来一点额外的开销。如果手动指定 context 字典,则可以避免这种开销。 转自 http://blog.csdn.net/chjjunking/article/details/6889740

MySQL concat函数的使用

MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习。 MySQL concat函数使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL concat函数可以连接一个或者多个字符串,如
  1. mysql> select concat('10');
  2. +--------------+
  3. | concat('10') |
  4. +--------------+
  5. | 10   |
  6. +--------------+
  7. 1 row in set (0.00 sec)
  8. mysql> select concat('11','22','33');
  9. +------------------------+
  10. | concat('11','22','33') |
  11. +------------------------+
  12. | 112233 |
  13. +------------------------+
  14. 1 row in set (0.00 sec)
MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
  1. mysql> select concat('11','22',null);
  2. +------------------------+
  3. | concat('11','22',null) |
  4. +------------------------+
  5. | NULL   |
  6. +------------------------+
  7. 1 row in set (0.00 sec)

MYSQL IFNULL函数的使用

下文对MYSQL IFNULL函数的使用进行了详细的叙述,供您参考学习,如果您在MYSQL IFNULL函数使用方面遇到过类似的问题,不妨一看。 MYSQL IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10); -> 0 mysql> select IFNULL(1/0,10); -> 10 mysql> select IFNULL(1/0,yes); -> yes IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。 mysql> select IF(1>2,2,3); -> 3 mysql> select IF(1<2,yes,no); -> yes mysql> select IF(strcmp(test,test1),yes,no); -> no expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。 mysql> select IF(0.1,1,0); -> 0 mysql> select IF(0.1<>0,1,0); -> 1 在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。 CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。 mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END; -> "one" mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END; -> "true" mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END; -> NULL

WordPress附件函数总结

WordPress附件可以是图片、视频、文本文件等类型,但大部分附件函数都是针对图片的,本文总结了常用的附件函数使用方法。

wp_get_attachment_image_src()

<?php wp_get_attachment_image_src( $attachment_id, $size, $icon ); ?>
用于图片类附件时,根据附件id和指定的尺寸($size,默认是thumbnail)获取图片的url、width、height,以数组形式返回结果,数组形式如下
Array
(
    [0] => 图片url
    [1] => 图片宽度width
    [2] => 图片高度 height
    [3] =>  $is_intermediate的值 //true表示返回了缩放后的图片,false表示返回了原始图片
)
关于$is_intermediate参考http://codex.wordpress.org/Function_Reference/image_downsize 关于第三个参数$icon 如果要获取的附件不是一张图片,而是,比如说视频,让$icon为真可以返回代表视频(mime type:video)的图标,否则只能返回空值。这些代表不同mime type的图片在wordpress wp-includes/images/crystal目录下

wp_get_attachment_image()

<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>
用于图片类附件时,根据附件ID和指定的尺寸($size,默认是thumbnail)返回完整的img标签,属性包括宽度、高度、alt等。 如果是非图片类附件,$icon为true时返回代表该附件类型的图片,具体参考上面图片的说明。 关于第四个参数$attr 这个参数可以给图片标签增加更多的属性,属性用数组来指定,例如给图片增加一个title属性
wp_get_attachment_image(
    $attachment_id,
    'thumbnail',
    false,
    array('title'=>'图片标题')
 );

wp_get_attachment_url()

<?php wp_get_attachment_url( $attachment_id ); ?>
获取附件的url 例如:
echo wp_get_attachment_url( 1 );
//返回
http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg

wp_get_attachment_link()

<?php wp_get_attachment_link( $id, $size, $permalink, $icon, $text ); ?>
以超链接形式返回附件,链接包括: 如果是图片,以img标签形式返回某个尺寸的图片 如果不是图片,且$icon为true,以img标签形式返回代表该类型文件的图标 如果不是图片,且$icon为false,返回附件标题 由$text指定的文字 例如:
echo wp_get_attachment_link( 1 );
//输出
<a title="图片标题" href="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg">
    <img width="150" height="150" alt="misuzu-air" class="attachment-thumbnail"
    src="http://www.solagirl.net/wp-content/uploads/2012/12/image.jpg">
</a>
如果指定了$te xt参数,则图片将被替换成文字。

the_attachment_link()

<?php the_attachment_link( $id, $fullsize, $deprecated, $permalink ); ?>
以超链接形式打印附件,与wp_get_attachment_link()基本类似,前者直接输出结果,后者返回结果。 第二个参数不太一样,$fullsize是布尔值,只能选择true or false,表示是使用原始图片(true)还是使用WordPress产生的缩略图(false)。

get_attachment_link()

<?php $attachment_page = get_attachment_link($attachment_id); ?>
以字符串形式返回专门用于显示该附件的页面的url,这个页面的模版通常是attachment.php。 与wp_get_attachment_url()的区别,后者以超链接形式返回附件的真实路径。

wp_get_attachment_metadata()

<?php wp_get_attachment_metadata( $attachment_id, $unfiltered ); ?>
获取图片类附件的meta信息,附件与post一样存储在wp_posts表中,只是类型不同。attachment meta与post meta类似,存储了有关该附件的全部信息。attachment meta可以告诉我们: 图片的宽度、高度、原始文件路径, 图片会根据多媒体设定生成其它尺寸,这些不同尺寸的宽高等信息 包括图片本身的信息,例如copyright、iso等

wp_get_attachment_thumb_url()

<?php wp_get_attachment_thumb_url( $attachment_id ); ?>
获取附件图像的缩略图url 缩略图尺寸在多媒体中设置(缩略图大小一项),上传图片时会自动产生缩略图。

wp_get_attachment_thumb_file()

<?php wp_get_attachment_thumb_file( $attachment_id ); ?>
此函数和上面那位很像,唯一的区别是它返回的是附件缩略图的绝对路径,例如 /home/user/www/wp-content/uploads/2012/12/image-150x150.jpg 在使用这个函数时,发现无法正常返回结果,修复的方法是找到这个函数,修改成下面这样 函数位于wp-includes/post.php line 4234 将
if ( !empty($imagedata['thumb']) && ($thumbfile = str_replace(basename($file), $imagedata['thumb'], $file)) && file_exists($thumbfile) )

return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );
替换成
if ( !empty($imagedata['sizes']['thumbnail']['file']) && ($thumbfile = str_replace(basename($file), $imagedata['sizes']['thumbnail']['file'], $file)) && file_exists($thumbfile) )

return apply_filters( 'wp_get_attachment_thumb_file', $thumbfile, $post->ID );

模板标签-wp_list_comments()

说明

该标签基于各种参数(包括在管理界面中设置的参数),显示某篇日志或页面的所有评论。

用法

<?php wp_list_comments( $args ); ?> 默认用法 <?php $args = array( 'walker' => null, 'max_depth' => , 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all', 'page' => , 'per_page' => , 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => ); ?> 用户也可以在管理面板的讨论菜单中对max_depth、per_page与reverse_top_level进行管理,这种方式更加方便。主题能够改写本函数设定的内容。

参数

avatar (int)所显示头像的大小,以像素为单位。默认值为32。http://gravatar.com/可允许1到512像素的头像。 style (字符串)该参数值可为'div'、'ol'或 'ul',分别可显示使用div标签的、有序或无序评论列表。默认值为'ul'。注意,其中的包含标签必须要明确显示,如
<div><?php wp_list_comments(array('style' => 'div')); ?></div>
<ol><?php wp_list_comments(array('style' => 'ol')); ?></ol>
type (字符串)所显示评论的类型。可为'all', 'comment', 'trackback', 'pingback'或'pings'。'pings'是'trackback' 与 'pingback'的总称。默认值为'all'。 reply_text (字符串)显示在评论中、作为回复链接的文本。(reply_text不是wp_list_comments的参数,但会被传递给get_comment_reply_link函数)。默认值为'Reply'。 login_text (字符串)若用户评论前必须注册并登录,该参数所显示文本。(login_text不是wp_list_comments的参数,但会被传递给get_comment_reply_link函数)。默认值为'Log in to Reply'。 callback (字符串)用以显示所有评论的自定义函数的函数名称。默认值为空。使用该参数将会调用自定义函数来显示所有评论。可在HTML布局变化后用该参数自定义评论。不推荐使用。

示例

默认用法 输出一个顺序已排列完毕的评论列表。评论的嵌套或分页可在管理面板的讨论菜单中设定。 <ol> <?php wp_list_comments(); ?> </ol> 自定义显示评论 当使用自定义的callback函数控制评论样式时,只显示用户评论(不显示pingback或trackback)。如果没有出现回复链接,可添加max_depth=X参数。 <ul> <?php wp_list_comments('type=comment&callback=mytheme_comment'); ?> </ul> 还需要在主题的functions.php文件中定义你的自定义callback函数。下面是一个示例: function mytheme_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>"> <div id="comment-<?php comment_ID(); ?>"> <div> <?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?> <?php printf(__('<cite>%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?> </div> <?php if ($comment->comment_approved == '0') : ?> <em><?php _e('Your comment is awaiting moderation.') ?></em> <br /> <?php endif; ?> <div><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','') ?></div> <?php comment_text() ?> <div> <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?> </div> </div> <?php } 可以注意到代码中缺少了一个结尾的</li>,WordPress会在列出所有子级分类后自动添加结尾</li>。

历史记录

该标签始见于WordPress 2.7.0

源文件

wp_list_comments()位于 wp-includes/comment-template.php

WordPress函数:query_posts(查询文章)

500px-avoid_query_posts 描述 query_posts() 可以用来控制在循环(Loop)中显示哪些文章。它可以替换主查询,而使用一个新的查询来获取文章。要清除 query_posts() 的新查询,可以使用 wp_reset_query() 来重置查询。 我们强烈建议您使用 pre_get_posts 来替代 query_posts() ,同时使用 is_main_query 来检查主查询。 举个例子,在首页(homepage),你可以看到最新的10篇文章。如果你想仅仅显示 5 篇文章(不在乎分页),你可以像这样使用 query_posts() :
[php] query_posts( 'posts_per_page=5' ); [/php] 下面是在 functions.php 中使用 pre_get_posts 实现类型的结果: [php] function five_posts_on_homepage( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'posts_per_page', '5' ); } } add_action( 'pre_get_posts', 'five_posts_on_homepage' ); [/php] 注:pre_get_posts 动作无法正常工作于 页面(Page) 查询。 注意事项 query_posts() 只是一种查询数据库获取文章列表的方法。在使用 query_posts() 之前,你需要了解它的弊端。 改变主循环(Alters Main Loop) query_posts() 是通过替换查询条件来改变主循环生成的内容的。一旦你使用 query_posts(), 你文章的相关的全局变量和模板标签都将改变。条件标签(Conditional tags)在你调用 query_posts() 之后也会发生改变——这可能是也可能不是预期的结果。 二级循环(Secondary Loops) 要创建 二级列表(例如:在页面底部显示相关文章列表,或者在边栏小工具中显示一个列表), 尝试使用 WP_Query 或 get_posts() 来获取文章。 如果你一定要用 query_posts() ,请确保你在上一个使用了 query_posts() 的循环结束的地方,使用 wp_reset_query() 来重置查询。 分页(Pagination) 分页将无法正常工作,除非你适当设置 'paged' 查询: adding the paged parameter 额外的SQL查询 如果你在模板页面中使用 query_posts ,WordPress 就会在 query_posts 时执行数据库查询和检索记录(即它是如何知道是服务于哪个模板页面!)所以,当你使用 query_posts() 覆盖了默认的查询,你基本上就扔掉了默认的查询以及它的结果,并重新对数据库执行了另一个查询。 这也许不是一个问题,尤其是如果你正在处理一个较小的基于博客的网站。但是对于大型网站、大型数据库以及较高的访客流量来说,你就要考虑使用其他查询方式来减少 SQL查询了,比如直接修改默认的查询(在它被请求前)。使用请求(request)过滤器可是实现这点。 'parse_query' 和 'pre_get_posts' 过滤器也可用来修改内部用于生成SQL查询数据库的 $query 对象。 用法 [php] <!--?php <br ?-->// 查询 query_posts( $args ); // 循环 while ( have_posts() ) : the_post(); echo '</pre> <ul> <li>'; the_title(); echo '</li> </ul> <pre> '; endwhile; // 重置查询 wp_reset_query(); ?> [/php] 在模板文件的循环前面添加 query_posts() ,wp_query 对象将根据你给定的参数生成一个新的 SQL 查询。当你这样做时,WordPress 将忽视通过URL检索到的其他参数(例如 页码或分类)。 保留现有的查询参数 如果你想保留原来的查询参数作为当前查询的一部分,然后添加或重写一些参数,你可以在 query_posts() 中使用全局变量 $query_string 。 例如,要修改文章的显示顺序并且不影响接下来的查询,你可以在循环(The Loop)前面使用下面的代码: [php] global $query_string; query_posts( $query_string . '&order=ASC' ); [/php] 当你通过这种方式使用 query_posts() , 参数的前面必须添加一个 & 。或者你可以合并原来的查询数组到到你的参数数组: [php] global $wp_query; $args = array_merge( $wp_query->query_vars, array( 'post_type' => 'product' ) ); query_posts( $args ); [/php] 结合参数 从上面的例子中,你可能已经注意到,你可以使用 & 来结合参数: [php] query_posts( 'cat=3&year=2004' ); [/php] 在首页查询当前月份的分类ID为 13 的文章: [php] if ( is_home() ) { query_posts( $query_string . '&cat=13&monthnum=' . date( 'n', current_time( 'timestamp' ) ) ); } [/php] 下面的例子,将返回一组文章(分类ID为 1 和 3 、显示 2 篇文章、根据标题降序排列): [php] query_posts( array( 'category__and' => array(1,3), 'posts_per_page' => 2, 'orderby' => 'title', 'order' => 'DESC' ) ); [/php] 下面的例子将返回分类ID为 1 和 标签为 “apples”的文章: [php] query_posts( 'cat=1&tag=apples' ); [/php] 你可以使用加号 + 来添加更多标签: [php] query_posts( 'cat=1&tag=apples+apples' ); [/php] 参数 参数详情请阅读 Parameter section of the WP_Query class article. 下面的例子同样可以用于 WP_Query 对象。 例子 在首页排除分类 将下面的代码添加到 index.php 文件,这样首页将显示 除了分类ID为 3 以外的其他所有文章: [php] <!--?php if ( is_home() ) { query_posts( 'cat=-3' ); } ?--> [/php] 你还可以以此类推添加更多要排除的分类: [php] <!--?php if ( is_home() ) { query_posts( 'cat=-1,-2,-3' ); } ?--> [/php] 检索某一篇文章 要检索某一篇文章,可以使用下面的代码: [php] query_posts( 'p=5' ); [/php] 注:如果检索的是一个附件,那你应该使用 attachment_id 代替 p : [php] query_posts( 'attachment_id=5' ); [/php] 如果你想使用“阅读更多(Read More)”功能,你就需要在查询中设置全局变量 $more 的值为 0 : [php] <!--?php // 检索 ID 为 5 的文章 query_posts( 'p=5' ); // 设置 $more 为 0 以便仅仅获取文章的第一部分 global $more; $more = 0; // 循环 while (have_posts()) : the_post(); the_content( '阅读全文 »' ); endwhile; ?--> [/php] 一个分类的所有文章 在 设置 > 阅读 中,“博客页面最多显示”的设置可以影响你的结果。为了克服这个问题,你可以添加 'posts_per_page' 参数,例如: [php] query_posts( array ( 'category_name' => 'my-category-slug', 'posts_per_page' => -1 ) ); [/php] 这样将显示这个分类的所有文章。 但是,对于子分类(subcategories or child categories), 'The Category Name' 可能就没办法生效,请使用 'category-slug' 替代。阅读 Function_Reference/is_category。 [php] if (is_category('category-slug')): query_posts(array('category_name' => 'my-category-slug', 'posts_per_page' => -1 )); endif; [/php] 聚合 Feeds 在 设置 > 阅读 中,“Feed 中显示最近”的设置 或者 'posts_per_rss' 参数将在 Feed 中覆盖任何查询的 'posts_per_page' 参数。 为了克服这个问题(例如在自定义的 ics Feed 中,输出所有符合条件的文章),可以使用 "posts_limit" 过滤器: [php] if ( isset ( $query->query_vars['feed'] ) and ( $query->query_vars['feed'] == 'ics' ) ) { add_filter( 'post_limits', '__return_empty' ); } [/php] 传递变量到 query_posts 有两种方法可以传递一个变量到查询中,你可以根据自己的需求选择。就像其他例子一样,将下面的代码添加到循环的上面: 例 1 在这个例子中,我们在查询运行前串连查询条件。首先分配变量,然后串连,然后运行它。在这里,我们从其他地方拉来一个分类变量: [php] // 分配参数作为当前分类 $categoryvariable = $cat; // 串连查询 $args = 'cat=' . $categoryvariable . '&orderby=date&order=ASC'; // 运行查询 query_posts( $args ); [/php] 例 2 在这个例子中,双引号是告诉 PHP 这是一个闭合。对于这个例子,我们获取当前 月份 和 年份,然后告诉 query_posts() 显示当前 年/月 的文章。此外,我们使用升序排列(ASE) ,这样,最老的文章将显示在页面的顶部: [php] $current_year = date('Y'); $current_month = date('m'); query_posts( "cat=22&year=$current_year&monthnum=$current_month&order=ASC" ); [/php] 例 3 这个例子解析如何删除一个完整的文章列表,并且进行分页处理。我们可以使用默认的 $query_string 告诉 query_posts() 显示所有文章列表。我们还可以自定义 posts_per_page 这个查询参数为 –1 到 任何数量 来设置每页显示的文章数。最后,你可能想使用 posts_nav_link() 来导航生成的文章存档。 [php] query_posts( $query_string . '&posts_per_page=-1' ); [/php] 例 4 如果你不需要使用 $query_string 变量,另一种方法是将所有的参数添加到一个数组中,即使在更加复杂的情况下,也清晰明了。上面 例 2 可以使用下面的代码实现: [php] $args = array( 'cat' => 22, 'year' => $current_year, 'monthnum' => $current_month, 'order' => 'ASC' ); query_posts( $args ); [/php] 正如你所见,通过这种方式,所有的变量都放置在独立的行中,这就非常容易阅读了。 例 5 它甚至可以使用数组方式(例 4)来查询多个分类。只需提供分类别名(taxonomy slug),多个别名使用逗号隔开。在下面的例子中,我们会得到 Bruce Campbell 或 Chuck Norris 的movie文章: [php] $args = array( 'post_type'=> 'movie', 'actor' => 'Bruce Campbell, Chuck Norris', 'order' => 'ASC' ); query_posts( $args ); [/php] 所在文件 query_posts() 包含在 wp-includes/query.php. 其他资源 为了更深入的讨论 WordPress 生成和处理查询,请阅读这些文章: Query Overview 和 Custom Queries 正确使用'pre_get_posts的自定义默认查询 - Bill Erickson - Customize the WordPress Query 或 John James Jacoby - Querying Posts Without query_posts 你不知道的查询 - Slides from WordCamp Netherlands 2012 by Andrew Nacin WordPress函数 之 query_posts用法汇总 相关函数 类: WP_Query - 详细的 WP_Query 类概述 类: $wpdb - 使用 $wpdb 对象的概述 函数: get_query_var() 函数: get_posts() - 一个专门返回文章数组的函数 函数: get_pages() - 一个专门返回页面数组的函数 函数: have posts() - 一个确定查询是否返回文章的条件 函数: the_post() - 用于自动设置查询后的循环 函数: rewind_posts() - 重置当前循环 函数: setup_postdata() - 为循环中的私有查询设置查询数据 函数: wp_reset_postdata() - 恢复以前的查询(通常在一环内循环) 函数: wp_reset_query() 函数: is_main_query() - 确保被改变的仅仅是主查询 动作钩子: pre_get_posts - 在执行之前修改 WordPress 的查询 过滤钩子: found_posts - 修改 WP_Query 对象的 found_posts 的值 教程: Displaying Posts Using a Custom Select Query 教程: Making Advanced Taxonomy Queries 教程: Making Custom Queries using Offset and Pagination

WordPress:Template Tags/get bloginfo

描述 get_bloginfo() 模板标签返回了关于你的博客的信息,这个信息可以在PHP代码的其它位置使用。这个模板标签和bloginfo()也可以用来显示你的博客信息。 用法 <?php get_bloginfo('show'); ?> 例子 默认用法 默认将你的博客的标题分派给变量$blog_title.
<?php $blog_title = get_bloginfo(); ?>
博客标题 这个例子将你的博客的标题分派给变数$blog_title。
<?php $blog_title = get_bloginfo('name'); ?>
博客Tagline 使用这个例子:
<?php echo 'Your Blog Tagline is: ' . get_bloginfo ( 'description' );  ?>
结果显示在你的博客上: 你的博客Tagline是: All things WordPress   模板目录 将主题目录URL返回到现行的主题中。这个例子中,信息用来包含一个自定义模板,称作searchform.php'。
<?php include(get_bloginfo('template_directory') . '/searchform.php'); ?>
例子 output 从2.5.1版本开始。注意目录URLs缺少拖尾的斜线。 admin_email = me@example atom_url = http://example/blog/feed/atom charset = UTF-8 comments_atom_url = http://example/blog/comments/feed/atom comments_rss2_url = http://example/blog/comments/feed description = Just another WordPress weblog home = http://example/blog html_type = text/html language = name = Testpilot pingback_url = http://example/blog/wp/xmlrpc.php rdf_url = http://example/blog/feed/rdf rss2_url = http://example/blog/feed rss_url = http://example/blog/feed/rss siteurl = http://example/blog stylesheet_directory = http://example/blog/wp/wp-content/themes/largo stylesheet_url = http://example/blog/wp/wp-content/themes/largo/style.css template_directory = http://example/blog/wp/wp-content/themes/largo template_url = http://example/blog/wp/wp-content/themes/largo text_direction = ltr url = http://example/blog version = 2.5.1 wpurl = http://example/blog/wp      

参数

show
(string)关于你的博客的详细信息。有效的参数值:
  • '' -(默认) 返回<管理 > 设置 > 总的上面设置的网络日志标题。这个数据从博客名中得到的,博客名记录在wp_options table中。
  • 'name' - 返回与''一样的值(默认)。
  • '描述' -管理 > 设置 > 总的中设置的Tagline。这个数据可以从blogdescription中得到,blogdescription记录在wp_options table中。
  • 'url' -Blog address (URI)是你的博客网站的URL而且设置在管理 > 设置 > 总的中。这个数据从home中得到,在wp_options table中。
  • 'home' - 返回与'url'相同的值。
  • 'siteurl' -返回与'url'相同的值。注:这与get_settings('siteurl')不同;get_settings('siteurl')返回WordPress url。请使用get_bloginfo(), get_settings()已经被取消了。
  • 'wpurl' -WordPress 地址 (URI)是你的WordPress安装的URL而且设置在管理 > 设置 > 总的。这个数据从siteurl中得到,siteurl在wp_options table中。
  • 'rdf_url' -RDF/RSS 1.0 feed的URL,是你的博客地址 (URI),附加字符串,例如/feed/rfd
  • 'rss_url' -RSS 0.92 feed的URL,是你的博客地址(URI),附加字符串,例如/feed/rss
  • 'rss2_url' - RSS 2.0 feed的URL,是你的博客地址(URI),附加字符串,例如/feed
  • 'atom_url' -Atom feed的URL,是你的博客地址 (URI),附加字符串,例如/feed/atom
  • 'comments_rss2_url' - 评论RSS 2.0 feedURL,是你的博客地址 (URI),附加字符串,例如/评论/feed
  • 'pingback_url' -Pingback (XML-RPC 文件)的URL,是你的博客地址 (URI),附加字符串/xmlrpc.php
  • 'stylesheet_url' -主要的CSS文件的URL,是你的博客地址 (URI),附加字符串,由/wp-content/themes样式表参数值组成,在wp_options table和字符串/style.css中。例如, http://www.sample.com/wordpress/wp-content/themes/default/style.css
  • 'stylesheet_directory' -样式表目录的本地路径。例如, /home/you/public_html/wordpress/wp-content/themes/default.
  • 'template_directory' - 目录目录的本地路径。例如, /home/you/public_html/wordpress/wp-content/themes/default
  • 'template_url' -与'template_directory'相同而且为正在使用的模板返回URL。
  • 'admin_email' -管理员的电子邮件地址设置在管理 > 设置 > 总的中。这个数据可以从admin_email中得到,admin_email在wp_options table中。
  • 'charset' -网页和feed的编码设置在管理 > 设置 > 阅读中。这个数据可以从blog_charset中得到,blog_charset在wp_options table中。
  • '版本' -你的博客使用的WordPress版本。这个数据是设置wp-includes/version.php中的$wp_version 变数的值。
  • 'html_type' -你的博客的"文章类型"。这个值设置在wp-admin/upgrade-schema.php而且可以从wp_options table中的html_type中得到。

WordPress友情链接函数 wp_list_bookmarks() 详解

在主题制作中,wp_list_bookmarks是比较常用的WordPress函数,在主题中调用友情链接的时候,通常都要用到。下面就对这个WordPress友情链接函数wp_list_bookmarks()做一下详细的介绍。 注:wp_list_bookmarks()已经取代了之前的老函数get_links_list() 和 get_links()。 默认情况下(没有添加任何参数)的用法: 链接被划分为不同类别,每个类别有一个名称 包含所有链接,无论是链接的分类名称还是ID 按名称排列链接列表 如果有图片,包含图片 图片和链接文本间应有空格 显示链接的描述 不显示链接等级 无限制,显示所有链接 显示所有链接 wp_list_bookmarks()参数详解 categorize (布尔型)是否所有链接都应该显示在相应的分类目录下。 1 (true)——默认值 0(false) category (字符串)将要显示的链接分类目录的ID,用逗号隔开。如果没有指定分类,显示所有含有链接的链接分类。 exclude_category (字符串)将被排除的链接分类目录的ID,用逗号隔开。默认值为 (no categories excluded)(不排除任何链接分类)。 category_name (字符串)将要显示的链接所属分类的名称。如果没有指定分类,显示所有含有链接的链接分类。默认值为 (all Categories)(所有链接)。 category_before (字符串)放置在每个链接分类目录前的文本。默认值为'
  • '。 category_after (字符串)放置在链接分类目录后的文本。默认值为'<'/li>'。 class (字符串)链接分类列表所在类。默认值为'linkcat'。 category_orderby (字符串)用以排列链接分类的值。有效值包括: 'name' ——默认值 'id' 'slug' 'count' category_order (字符串)排列的顺序,以升序或降序排列category_orderby参数值。有效值包括: ASC ——默认值 DESC title_li (字符串)链接列表的标题。默认值为 '__('Bookmarks')',显示标题为“Bookmarks”(the_(' ')用于本地化。)只有将categorize设为0(false)时,才可使用该参数(否则将使用分类名称)。若将title_li设为空(0),则不显示列表标题,且链接列表不会被
      ,
    标签围绕(要确保将categorize选项设为0,以使title_li生效)。 title_before (字符串)'categorize'值为1(true)时显示在每个链接类别前的文本,或'categorize'值为0(false)时在'title_li'中定义的文本。 默认值为'

    '。 title_after 'categorize'值为1(true)时显示在每个链接类别后的文本,或'categorize'值为0(false)时在'title_li'中定义的文本。 默认值为'

    '。 show_private (布尔型)是否应显示某个链接分类(即使该分类被认为是私密的)。忽略管理面板的设置,显示私密链接分类(TRUE),或者不显示私密链接分类(FALSE)。 1 (true) 0(false)——默认值 include (字符串)在结果中包含的数值型链接ID列表,各ID用逗号隔开。例如, 'include=1,3,6' 表示返回或响应ID为1、3、6的链接。如果使用include字符串,那么 category、category_name、exclude参数将被忽略。默认值为 (all Bookmarks)(所有链接)。 exclude (字符串)将要被排除的链接的ID,各ID用逗号隔开。如 'exclude=4,12'表示不返回ID为4和12的链接。默认值为 (exclude nothing)(不排除任何链接)。 orderby (字符串)以何顺序为链接排序。这可能是一份各个值的列表,各值由逗号隔开。默认值为'name',除非你传递' '(空)值给该参数,此时参数值为'id'。有效值包括: 'id' (WP 3.2 及以后版本使用 'link_id' ) 'url' 'name' ——默认值 'target' 'description' 'owner' —— 通过连接管理器添加链接的用户 'rating' 'updated' 'rel' —— 链接关系(XFN) 'notes' 'rss' 'length' —— 链接名称的长度,范围从最短的名称到最长的名称 'rand' —— 以任意顺序显示链接 order (字符串)根据'orderby'参数中的设置为分类目录排序(升序或降序)。有效值包括: ASC ——默认值 DESC limit (整数)可以显示的最大链接数。默认值为-1(所有链接)。 before (字符串)放置在链接前的文本。默认值为'
  • '。 after (字符串)放置在链接后的文本。默认值为'
  • '。 link_before (字符串)超链接代码中链接文本前的文字。无默认值。 link_after (字符串)超链接代码中链接文本后的文字。无默认值。 between (字符串)链接/图片与其说明之间的文本。默认值为'n'(换行)。 show_images (布尔型)是(TRUE)否(FALSE)显示链接的图片 1 (true)——默认值 0(false) show_description (布尔型)是(TRUE)否(FALSE)显示链接说明。该参数用于show_images为FALSE时或未定义链接图片时。 1 (true) 0(false)——默认值 show_name (布尔型)显示链接文本(TRUE)。该参数用于show_images为TRUE时。 1 (true) 0(false)——默认值 show_rating (字符串)是(TRUE)否(FALSE)显示链接的级别。 1 (true) 0(false)——默认值 show_updated (布尔型)是(TRUE)否(FALSE)显示最近更新的时间标记。 1 (true) 0(false)——默认值 hide_invisible (布尔型)是否显示公开度为“不公开”的链接。是(TRUE)否(FALSE)遵循管理面板中的设置。 1 (true)——默认值 0(false) echo (布尔型)显示结果(TRUE),或将结果保留以供PHP使用(FALSE)。 1 (true)——默认值 0(false)

    WordPress函数:wp_tag_cloud

    wp_tag_cloud() 函数的作用是用来标签云的,可以根据每个标签所关联的文章次数来定义字体大小、标签排序等属性。从 2.8 版本开始,添加了 分类法(taxonomy)参数,这就意味着,除了 标签(tags)以外,还可以将 分类(Categories) 或其他 自定义分类法(Custom Taxonomies)作为“云”显示。 注: child_of 不是一个直接的 wp_tag_cloud 数组的键(Key),但由于这个函数使用 wp_parse_args() 和 get_terms() ,你可以通过 get_terms() 使用所有的数组键。 默认情况下的输出内容: smallest —— 最小的标签(使用次数最少)显示大小为8 largest ——最大的标签(使用次数最多)显示大小为22 unit —— 最大值最小值的单位为'pt' number —— 至多显示45个标签 format —— 以平面形式显示所有标签(标签之间用空格隔开) separator —— 显示标签之间的空格 orderby —— 按名称为标签排序 order —— 以升序排列 exclude —— 不排除任何标签 include —— 包括所有标签 topic_count_text_callback —— 使用函数 default_topic_count_text link —— 可视 taxonomy —— 用文章的标签作为云基础 echo —— 输出结果 参数 smallest (整数)(可选)使用次数最少的标签的字号大小(单位由unit参数决定) 默认值:8 largest (整数)(可选)使用次数最多的标签的字号大小(单位由unit参数决定) 默认值:22 unit (字符串)(可选)对smallest与largest的值的测量单位。可以是任何CSS长度单位,如pt, px, em, %。 默认值:'pt' number (整数)(可选)显示在云中的实际标签数。(值为'0'时显示所有标签) 默认值:45 format (字符串)(可选)所显示的云的格式。 'flat' (默认值)标签被“separator”参数所定义的空格分隔 'list' 标签与class='wp-tag-cloud' 共同在UL中 'array' 标签在数组中,函数以数组方式返回标签云,以用在PHP中。注意:数组被返回,而非显示。 separator (字符串)(可选)标签之间的文本/空格。 默认值:'\n' (空格) orderby (字符串)(可选)标签的排列依据。有效值包括: 'name' (默认值) 'count' order (字符串)(可选)排列顺序(升序或降序)。有效值包括(必须大写): 'ASC' ——升序(默认值) 'DESC' ——降序 'RAND' —— 随机 exclude (字符串)(可选)将要被排除的标签(term_id)的ID,各ID用逗号隔开。如 'exclude=5,27'表示不显示term_id为5或27的标签。默认值为不排除任何标签。 include (字符串)(可选)要包含的标签(term_id)列表,各ID用逗号隔开。例如, 'include=5,27' 表示只显示term_id为5或27的标签。默认为包含所有链接。 topic_count_text_callback (字符串)(可选)给出标签所关联的文章数,返回标签链接的用于 tooltip 的文本。 默认值: default_topic_count_text link (字符串)(可选)设置链接,允许编辑某个指定标签。有效值包括: 'view' (默认值) 'edit' taxonomy (字符串)(可选)用以生成云的分类法。 'post_tag' —— (默认值)将文章标签当作云的来源 'category' —— 用文章分类生成云 'link_category' —— 用链接分类目录生成云 任何其他已注册的分类法 或者一组 分类法 (注:此参数引入于 3.1 版本) echo (布尔型)(可选)显示结果,或将结果保留在变量中。默认值为true(显示标签云)。有效值包括: 1 (true) —— 默认值 0 (false)

    关于函数wp_list_cats()的使用

    下面这一句是用来显示WP的分类清单: wp_list_cats(); 但这句函式还贴心的替使用者保留了不少设定 例如下面这句就是告诉它我的分类要依照名称排序、并显示拥有的文章数量、而且分类之后要显示分类RSS连结。 wp_list_cats(‘sort_column=name&optioncount=1&hierarchical=0′); 除开头的第一个项目之外,每个项目名称之前必须加上一个「&」记号。 可自订的选项列表如下:
    • sort_column ID 或 name,预设为 ‘ID 分别为依 ID 值或分类名称排序
    • sort_order asc 或 desc,预设为递增 asc 排序递增或递减
    • list 0 或 1,预设为以清单方式显示: 1 设定是否以清单方式显示? 将会在分类上加上&lt;ul> &lt;li>
    • optiondates 0 或 1,预设为不显示: 0 设定是否显示每个分类下最新发表文章的发表日期?
    • optioncount 0 或 1,预设为不显示: 0 是否显示分类所拥有的文章计数?
    • hide_empty 0 或 1,预设为隐藏: 1 设定是否隐藏无文章的分类?
    • use_desc_for_title 0 或 1,预设为显示成分类说明: 1 设定分类连结的title是否显示为分类说明? &lt;a title=”分类说明” href=”…&gt;
    • children 0 或 1,预设为显示: 1 是否显示子分类
    • hierarchical 0 或 1,预设为层级方式显示: 1 子分类是否以层级方式显示
    • child_of 无默认值 只显示某项分类(ID)的子分类 child_of=分类ID值 有设定此项目的话,hide_empty要设为0
    • exclude 无默认值 设定不要显示的分类ID,可为复数 如 exclude=ID1,ID2,ID3,……
    • feed 无默认值 设定分类 RSS 的显示文字 如 feed=RSS 如果这个项目有设定的话,分类之后将会显示分类Feed的连结
    • feed_image 无默认值 设定分类 RSS 的图片路径 如 feed=images/rss.gif 如果同时有设定 feed_image 与 feed,则将以 feed_image 为主