如何获取youtube缩略图

youtube视频默认提示4张缩略图,包括一张比较大的(默认的)以及三张较小的。

youtube视频都具有如下的地址:http://www.youtube.com/watch?v=VIDEO_ID 而其缩略图地址的格式如下:http://img.youtube.com/vi/VIDEO_ID/#.jpg (其中#为0,1,2,3)。 http://img.youtube.com/vi/VIDEO_ID/0.jpg是默认的缩略图(唯一的一张大尺寸缩略图480px X 360px)。其余三张为小尺寸(120px X 90px)。

因此在做youtube的功能时,只需要知道该视频的地址,就能通过字符串操作函数很方便得获取这些缩略图的图片路径。

运用playlists实现Youtube多视频连续播放功能

对于做网站项目外包的朋友来说,嵌入youtube视频已经是一个再常见不过的功能了。embed嵌入代码很方便实用。但遇到要求多youtube视频连续播放的项目,却还真是没接触过。 试了许多视频播放插件,都不尽人意。 其实完全没必要那么麻烦。 youtube自带的Playlists(播放列表)功能就能满足此需要。

1. 登陆自己的youtube账号。
2. 点击My Videos(我的视频)。
3. 在My videos&playlists(我的视频和播放列表)里,创建一个新的playlists。选择类型为public并且允许别人使用播放列表的嵌入代码。
4. 之后当你浏览任何youtube视频的时候,你都可以将它加入到你创建的这个playlist里面。
5. 在你的playlist里面点击share按钮,就能取得嵌入代码。
6. 像嵌入单个youtube视频那样嵌入这段代码就可以了。
7. youtube视频代码提供了很多参数,这些参数同样可以用于playlist的代码中,具体参数参照http://code.google.com/apis/youtube/player_parameters.html

如何写WordPress Child Themes

Child Theme 是用来改写主题的一个好方法。 对于很多收费主题来说,主题作者都会有或多或少的更新,比如主题框架功能的更新完善。 我们自己定制化后的这些主题,更新以后会丢失定制化的部分,所以选择child theme方式来定制这类主题,是个不错的方式。

Child Theme的编写基本规则:

1. Child Theme的文件位置

跟普通theme主题一样,都位于wp-content/themes下面。

2. Child Theme的文件结构

Child Theme对文件的要求要简单一些, 只有style.css是必需的,别的文件都是可有可无的。 具体如下:style.css (必需)      functions.php (可选)           Template files (可选)          Other files (可选)

3. style.css文件结构要求

以给默认主题Twenty Eleven写Child Theme为例:

/*
Theme Name:     Twenty Eleven Child
Theme URI:      http: //example.com/
Description:    Child theme for the Twenty Eleven theme
Author:         Your name here
Author URI:     http: //example.com/about/
Template:       twentyeleven
Version:        0.1.0
*/

其中两项是必需的, 第一项是Theme Name, 也就是你这个Child Theme的主题名。 第二项是Template,也就是说你这个Child Theme的Parent Theme是谁。
注意这里的Template是父主题的文件夹的名字,并且是区分大小写的。

4. style.css如何写
Child Theme的style.css跟Parent Theme的关系是完全覆盖的, 也就是说如果你启用了Child Theme, 父主题的style.css里面的样式就不被调用了。 因为对于style.css来说,我们需要引入父主题的style.css内容。代码如下:

/*
Theme Name: Twentyeleven Child
Description: Child theme for the twentyeleven theme
Author: Your name here
Template: twentyeleven
*/

@import url("../twentyeleven/style.css");

#site-title a {
    color: #009900;
}

5. Child Theme的functions.php怎么写
Child Theme和Parent Theme的functions.php不是覆盖关系,所以我们可以只在子主题的functions.php里加入父主题没有定义过得函数。 例如给网站加 favicon图标:

function favicon_link() {
    echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />' . "\n";
}
add_action('wp_head', 'favicon_link');

6. get_stylesheet_directory()获取当前stylesheet路径
Parent Theme中我们通常使用get_bloginfo(‘stylesheet_directory’); Child Theme中我们使用get_stylesheet_directory()来获取stylesheet路径。

7. 其他Child Theme模板文件如何写
Child Theme的其他模板会覆盖掉Parent Theme的同名模板, 如果你想定制某个模板比如home.php,你可以复制到Child Theme目录然后进行修改。 另外Child Theme里面创建的Parent Theme中没有的模板,在后台页面编辑时,也可以进行选择。 例如我们希望创建一个新的页面模板page-about.php,来专门用于about页面。我们可以在子主题里创建该文件,并定制里面的代码。

wordpress获取当前登录用户信息的方法

1). get_currentuserinfo();
此函数将当前登录用户信息赋给全局变量$current_user以及一些单独的用户信息全局变量例如$display_name, $user_email等。 代码如下:
<?php global $current_user, $display_name , $user_email;
get_currentuserinfo();
//全局变量$current_user
echo ‘Username: ‘ . $current_user->user_login . “\n”;
echo ‘User email: ‘ . $current_user->user_email . “\n”;
echo ‘User first name: ‘ . $current_user->user_firstname . “\n”;
echo ‘User last name: ‘ . $current_user->user_lastname . “\n”;
echo ‘User display name: ‘ . $current_user->display_name . “\n”;
echo ‘User ID: ‘ . $current_user->ID . “\n”;
//单独的全局变量
echo $display_name . “‘s email address is: ” . $user_email;
?>

2). wp_get_current_user()
此函数必须将返回值赋给一个数组变量,代码如下:
<?php
$current_user = wp_get_current_user();
if ( 0 == $current_user->ID ) {
// Not logged in.
} else {
// Logged in.
}
?>

wordpress数据库查询相关类,对象,函数的整理

1). WP_Query 是一个wordpress类,而$wp_query 是一个WP_Query的实例化对象。 我们可以用 WP_Query()来实现。
<?php
// The Query
$the_query = new WP_Query( $args );
?>
WP_Query提供了大量的参数,包括author,category, tag, taxonomy, post&page, type&status, pagination, offset, order&orderby, sticky post, time, custom field, permission.  另外还提供了Filters方式,从而可以进一步定制查询sql语句。 包括:posts_distinct, posts_groupby, posts_join, post_limits, posts_orderby, posts_where, posts_join_paged, posts_where_paged,posts_clauses.

2). get_query_var($var)获取WP_Query的value。 例如
<?php
//获取WP_Query里面key为category_name的value,也就是分类名
$page = (get_query_var(‘category_name’));
?>

3). query_posts()
最简单的改变wordpress默认查询的方法。 支持的参数跟WP_Query是类似的。

4). have_posts()
此函数一般在查询之后运行,用来检测你的查询是否有结果。 他只有true跟false两个值。一般搭配if else以及while语句,来循环输出loop的值。 代码如下:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Your loop code
endwhile;
else :
echo wpautop( ‘Sorry, no posts were found’ );
endif;
?>

5). the_post()
遍历loop的值,一般搭配have_posts使用,来循环输出loop的值。

6). rewind_posts(), wp_reset_postdata(), wp_reset_query() 用来清除自定义query,恢复默认$post全局变量等。

7). 自定义wordpress sql语句。
使用全局变量$wpdb,来执行自己的sql语句。 这种方式的弊端是很多wordpress默认的功能比如分页,是不可用的。
$wpdb->query(), 单纯运行一条sql语句,比如update, delete之类的。 例子:
<?php
$wpdb->query(

DELETE FROM $wpdb->postmeta
WHERE post_id = ’13′
AND meta_key = ‘gargle’

);
$wpdb->query(

UPDATE $wpdb->posts
SET post_parent = 7
WHERE ID = 15
AND post_status = ‘static’

);
?>
$wpdb->get_var(),用来选取单个变量,例如:
<?php
$user_count = $wpdb->get_var( $wpdb->prepare( “SELECT COUNT(*) FROM $wpdb->users;” ) );
?>
$wpdb->get_row(),用来选取一条数据库记录, 例如:
<?php
$mylink = $wpdb->get_row(“SELECT * FROM $wpdb->links WHERE link_id = 10″);
?>
$wpdb->get_col(), 用来获取一列, 结果为包含该列所有值得一个数组。
$wpdb->get_results(), 用来选取多行数据。
另外,insert,update等操作也有其对应的方法,如下:
$wpdb->insert(), $wpdb->update()。
具体用法和参数请参照http://codex.wordpress.org/Class_Reference/wpdb