EEDU Blog: 博客 ·  资讯 ·  论坛 ·  留言
登录 新用户? 注册   |  

ahaoxie's blog

订阅博客:

环境生态网站长

小窍门

wordpress 为不同分类指定不同的模板

为每个分类指定不同的模板

1
2
3
4
5
6
7
8
9
<?php
if(in_category('3')){
    include(TEMPLATEPATH .'/cat3.php');
}else if(in_category('4')){
    include(TEMPLATEPATH .'/cat4.php');
}else {
    include(TEMPLATEPATH.'/cat.php');
}
?>

为不同分类指定不同的样式表

1
2
3
4
5
<?php if(is_category('5')){?>
<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/cat-5.CSS" type="text/css" media="screen" />;
<?php }else{ ?>
<link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" media="all" />
<?php } ?>

为不同的分类指定不同的图像

1
2
3
4
5
<?php if(is_category('4') ){?>
<img src='<?php bloginfo('template_url');?>/images/new.gif' alt='' />
<?php }elseif(is_category('3') ){?>
<img src='<?php bloginfo('template_url');?>/images/about.gif' alt='' />
<? } ?>

如果出现代码错误,请注意中英文符号。

链接: wordpress 为不同分类指定不同的模板/样式表/图片

发表于: 2012-02-25 05:38 | 全文(查看: 349) | 评论(1) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  新知  

Nextgen Gallery的代码引用

Nextgen Gallery 是个强大的图片展示插件,支持RSS输出,有幻灯片侧边栏,图集展,标签法显示图片……

代码引用的简单说明:

(使用时要把代码首尾空格去掉,图集是相册的子集)。

1、插入一个幻灯片: [ slideshow id=x w=width h=height ]

效果预览: http://nextgen.boelinger.com/slideshow

2、插入一个相册: [ album id=x template=extend ] 或 [ album id=x template=compact ]

#extend 是比较大的展示扩展框

#compact 是比较紧的展示扩展框

效果预览: http://nextgen.boelinger.com/album/

3、 插入一个图集: [ nggallery id=x ] or [ nggallery id=1 template=sample1 ]

显示图集有可以有不同的边框效果,方法是加上template=sample1,后面参数设置有sample1, sample2,

sample3, sample4, sample5, sample6

效果预览: http://nextgen.boelinger.com/gallery-page

4、插入一张图片: [ singlepic id=x w=width h=height mode=web20/watermark float=left/right ]

#mode 是可选项,可选参数有 web20(倒影效果),watermark(水印效果)

#float 是可选项,可选参数有 left(左对齐),right(右对齐)

效果预览: http://nextgen.boelinger.com/singlepic/

5、插入图片浏览器: [ imagebrowser id=x ]

效果预览: http://nextgen.boelinger.com/image-browser

6、显示相册或图集里有相同标签的照片 [ nggtags album=tags ] or [ nggtags gallery=tags ]

#tags 是指你给照片所设置的标签

效果预览:http://nextgen-gallery.com/albumtags/

效果预览:http://nextgen-gallery.com/gallery-tags/

其本展示调用有这些,但还有一些物殊展示:动感幻灯片展示和视频类展示。如果要实现这两个展示要先分别

安装两个插件: NextGEN Monoslideshow 和Revolt

动感幻灯片效果预览:http://nextgen-gallery.com/slideshow/nextgen-monoslideshow/

视频效果预览:http://nextgen-gallery.com/wordtube-20/plugin-support/

 

发表于: 2012-02-25 05:16 | 全文(查看: 337) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: Nextgen Gallery  新知  

wordpress调用函数大全

WordPress模板基本文件

style.css 样式表文件
index.php 主页文件
single.php 日志单页文件
page.php 页面文件
archvie.php 分类和日期存档页文件
searchform.php 搜索表单文件
search.php 搜索页面文件
comments.php 留言区域文件(包括留言列表和留言框)
404.php 404错误页面
header.php 网页头部文件
sidebar.php 网页侧边栏文件
footer.php 网页底部文件

WordPress Header头部 PHP代码 (注: 也就是位于<head>和</head>之间的PHP代码)

<?php bloginfo(’name’); ?> 网站标题
<?php wp_title(); ?> 日志或页面标题
<?php bloginfo(’stylesheet_url’); ?> WordPress主题样式表文件style.css的相对地址
<?php bloginfo(’pingback_url’); ?> WordPress博客的Pingback地址
<?php bloginfo(’template_url’); ?> WordPress主题文件的相对地址
<?php bloginfo(’version’); ?> 博客的WordPress版本
<?php bloginfo(’atom_url’); ?> WordPress博客的Atom地址
<?php bloginfo(’rss2_url’); ?> WordPress博客的RSS2地址
<?php bloginfo(’url’); ?> WordPress博客的绝对地址
<?php bloginfo(’name’); ?> WordPress博客的名称
<?php bloginfo(’html_type’); ?> 网站的HTML版本
<?php bloginfo(’charset’); ?> 网站的字符编码格式

WordPress 主体模板 PHP代码

<?php the_content(); ?> 日志内容
<?php if(have_posts()) : ?> 确认是否有日志
<?php while(have_posts()) : the_post(); ?> 如果有,则显示全部日志
<?php endwhile; ?> 结束PHP函数”while”
<?php endif; ?> 结束PHP函数”if”
<?php get_header(); ?> header.php文件的内容
<?php get_sidebar(); ?> sidebar.php文件的内容
<?php get_footer(); ?> footer.php文件的内容
<?php the_time(’m-d-y’) ?> 显示格式为”02-19-08″的日期
<?php comments_popup_link(); ?> 显示一篇日志的留言链接
<?php the_title(); ?> 显示一篇日志或页面的标题
<?php the_permalink() ?> 显示一篇日志或页面的永久链接/URL地址
<?php the_category(’, ‘) ?> 显示一篇日志或页面的所属分类
<?php the_author(); ?> 显示一篇日志或页面的作者
<?php the_ID(); ?> 显示一篇日志或页面的ID
<?php edit_post_link(); ?> 显示一篇日志或页面的编辑链接
<?php get_links_list(); ?> 显示Blogroll中的链接
<?php comments_template(); ?> comments.php文件的内容
<?php wp_list_pages(); ?> 显示一份博客的页面列表
<?php wp_list_cats(); ?> 显示一份博客的分类列表
<?php next_post_link(’ %link ‘) ?> 下一篇日志的URL地址
<?php previous_post_link(’%link’) ?> 上一篇日志的URL地址
<?php get_calendar(); ?> 调用日历
<?php wp_get_archives() ?> 显示一份博客的日期存档列表
<?php posts_nav_link(); ?> 显示较新日志链接(上一页)和较旧日志链接(下一页)
<?php bloginfo(’description’); ?> 显示博客的描述信息

其它的一些WordPress模板代码

/%postname%/ 显示博客的自定义永久链接
<?php the_search_query(); ?> 搜索表单的值
<?php _e(’Message’); ?> 打印输出信息
<?php wp_register(); ?> 显示注册链接
<?php wp_loginout(); ?> 显示登入/登出链接
<!–next page–> 在日志或页面中插入分页
<!–more–> 截断日志
<?php wp_meta(); ?> 显示管理员的相关控制信息
<?php timer_stop(1); ?> 显示载入页面的时间
<?php echo get_num_queries(); ?> 显示载入页面查询

1. wordpress调用最新文章

WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下:

<?php get_archives(‘postbypost’, 10); ?> (显示10篇最新更新文章)

或者

<?php wp_get_archives(‘type=postbypost&limit=20&format=custom’); ?>

后面这个代码显示你博客中最新的20篇文章,其中format=custom这里主要用来自定义这份文章列表的显示样式。具体的参数和使用方法你可 以参考官方的使用说明- wp_get_archvies。(fromat=custom也可以不要,默认以UL列表显示文章标题。)

补充: 通过WP的query_posts()函数也能调用最新文章列表, 虽然代码会比较多一点,但可以更好的控制Loop的显示,比如你可以设置是否显示摘要。具体的使用方法也可以查看官方的说明。

2. wordpress调用随机文章

<?php
$rand_posts = get_posts(‘numberposts=10&orderby=rand’);
foreach( $rand_posts as $post ) :
?>
<!–下面是你想自定义的Loop–>
<li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
<?php endforeach; ?>

3. wordpress调用最新留言

下面是我之前在一个WordPress主题中代到的最新留言代码,具体也记不得是哪个主题了。该代码直接调用数据库显示一份最新留言。其中 LIMIT 10限制留言显示数量。绿色部份则是每条留言的输出样式。

<?php
global $wpdb;
$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,
comment_post_ID, comment_author, comment_date_gmt, comment_approved,
comment_type,comment_author_url,
SUBSTRING(comment_content,1,30) AS com_excerpt
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = ’1′ AND comment_type = ” AND
post_password = ”
ORDER BY comment_date_gmt DESC
LIMIT 10″;
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;   foreach ($comments as $comment) {
$output .= “n<li>”.strip_tags($comment->comment_author)
.”:” . ” <a href=”" . get_permalink($comment->ID) .
“#comment-” . $comment->comment_ID . “” title=”on ” .
$comment->post_title . “”>” . strip_tags($comment->com_excerpt)
.”</a></li>”;
}   $output .= $post_HTML;
echo $output;?>

4.wordpress调用相关文章

在文章页显示相关文章

<?php

$tags = wp_get_post_tags($post->ID);

if ($tags) {

$first_tag = $tags[0]->term_id;

$args=array(

‘tag__in’ => array($first_tag),

‘post__not_in’ => array($post->ID),

‘showposts’=>10,

‘caller_get_posts’=>1

);

$my_query = new WP_Query($args);

if( $my_query->have_posts() ) {

while ($my_query->have_posts()) : $my_query->the_post(); ?>

<li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title_attribute(); ?>”><?php the_title();?> <?php comments_number(‘ ‘,’(1)’,'(%)’); ?></a></li>

<?php

endwhile;

}

}

wp_reset_query();

?>

5.wordpress调用指定分类的文章

<?php $posts = get_posts( “category=4&numberposts=10″ ); ?>
<?php if( $posts ) : ?>
<ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
<li>
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

6.wordpress去评论者链接的评论输出

<?php

global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID,

comment_post_ID, comment_author, comment_date_gmt, comment_approved,

comment_type,comment_author_url,

SUBSTRING(comment_content,1,14) AS com_excerpt

FROM $wpdb->comments

LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =

$wpdb->posts.ID)

WHERE comment_approved = ’1′ AND comment_type = ” AND

post_password = ”

ORDER BY comment_date_gmt DESC

LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment) {

$output .= “\n<li>”.strip_tags($comment->comment_author)

.”:” . ” <a href=\”" . get_permalink($comment->ID) .

“#comment-” . $comment->comment_ID . “\” title=\”on ” .

$comment->post_title . “\”>” . strip_tags($comment->com_excerpt)

.”</a></li>”;

}

$output .= $post_HTML;

echo $output;?>

7.wordpress调用含gravatar头像的评论输出

<?php

global $wpdb;

$sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,10) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = ’1′ AND comment_type = ” AND comment_author != ‘郑 永’ AND post_password = ” ORDER BY comment_date_gmt DESC LIMIT 10″;

$comments = $wpdb->get_results($sql);

$output = $pre_HTML;

foreach ($comments as $comment) {

$output .= “\n<li>”.get_avatar(get_comment_author_email(‘comment_author_email’), 18). ” <a href=\”" . get_permalink($comment->ID) . “#comment-” . $comment->comment_ID . “\” title=\”" . $comment->post_title . ” 上的评论\”>”. strip_tags($comment->comment_author) .”: “. strip_tags($comment->com_excerpt) .”</a></li>”;

}

$output .= $post_HTML;

$output = convert_smilies($output);

echo $output;

?>

上面代码把comment_author的值改成你的ID,18是头像大小,10是评论数量。

8.wordpress调用网站统计大全

1、日志总数:

<?php $count_posts = wp_count_posts(); echo $published_posts = $count_posts->publish;?>

2、草稿数目:

<?php $count_posts = wp_count_posts(); echo $draft_posts = $count_posts->draft; ?>

3、评论总数:

<?php echo $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->comments”);?>

4、成立时间:

<?php echo floor((time()-strtotime(“2008-8-18″))/86400); ?>

5、标签总数:

<?php echo $count_tags = wp_count_terms(‘post_tag’); ?>

6、页面总数:

<?php $count_pages = wp_count_posts(‘page’); echo $page_posts = $count_pages->publish; ?>

7、分类总数:

<?php echo $count_categories = wp_count_terms(‘category’); ?>

8、链接总数:

<?php $link = $wpdb->get_var(“SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = ‘Y’”); echo $link; ?>

9、用户总数:

<?php $users = $wpdb->get_var(“SELECT COUNT(ID) FROM $wpdb->users”); echo $users; ?>

10、最后更新:

<?php $last = $wpdb->get_results(“SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = ‘post’ OR post_type = ‘page’) AND (post_status = ‘publish’ OR post_status = ‘private’)”);$last = date(‘Y-n-j’, strtotime($last[0]->MAX_m));echo $last; ?>

9.wordpress判断语句

is_single()

判断是否是具体文章的页面

is_single(’2′)

判断是否是具体文章(id=2)的页面

is_single(’Beef Stew’)

判断是否是具体文章(标题判断)的页面

is_single(’beef-stew’)

判断是否是具体文章(slug判断)的页面

comments_open()

是否留言开启

pings_open()

是否开启ping

is_page()

是否是页面

is_page(’42′)

id判断,即是否是id为42的页面

is_page(’About Me’)

判断标题

is_page(’about-me’)

slug判断

is_category()

是否是分类

is_category(’6′)

id判断,即是否是id为6的分类

is_category(’Cheeses’)

分类title判断

is_category(’cheeses’)

分类 slug判断

in_category(’5′)

判断当前的文章是否属于分类5

is_author()

将所有的作者的页面显示出来

is_author(’1337′)

显示author number为1337的页面

is_author(’Elite Hacker’)

通过昵称来显示当前作者的页面

is_author(’elite-hacker’)

下面是通过不同的判断实现以年、月、日、时间等方式来显示归档

is_date()

is_year()

is_month()

is_day()

is_time()

判断当前是否是归档页面

is_archive()

判断是否是搜索

is_search()

判断页面是否404

is_404()

判断是否翻页,比如你当前的blog是http://domain.com 显示http://domain.com?paged=2的时候,这个判断将返 回真,通过这个函数可以配合is_home来控制某些只能在首页显示的界面,

例如:

<?php if(is_single()):?>

//这里写你想显示的内容,包括函数

<?php endif;?>

或者:

<?php if(is_home() && !is_paged() ):?>

//这里写你想显示的内容,包括函数

<?php endif;?>

10.wordpress 非插件调用评论表情

<!–smilies–>
<?php

function wp_smilies() {

global $wpsmiliestrans;

if ( !get_option(‘use_smilies’) or (empty($wpsmiliestrans))) return;

$smilies = array_unique($wpsmiliestrans);

$link=”;

foreach ($smilies as $key => $smile) {

$file = get_bloginfo(‘wpurl’).’/wp-includes/images/smilies/’.$smile;

$value = ” “.$key.” “;

$img = “<img src=\”{$file}\” alt=\”{$smile}\” />”;

$imglink = htmlspecialchars($img);

$link .= “<a href=\”#commentform\” title=\”{$smile}\” onclick=\”document.getElementById(‘comment’).value += ‘{$value}’\”>{$img}</a> ”;

}

echo ‘<div>’.$link.’</div>’;

}

?>

<?php wp_smilies();?>

<!–smilies—>

将以上代码复制到 comments.php 中合适的位置。

 

来源:http://down.chinaz.com/try/201107/784_1.htm

发表于: 2012-02-23 12:07 | 全文(查看: 284) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  php  新知  

Drupal一些常用的主题函数

下面收集的这些函数均可在 Drupal 官方的 API 文档中找到,具体地址 http://api.drupal.org/ 个人这里列出了一些对前台模板主题比较实用重要的如下:


1、打印数组及对象:print_r();

 echo print_r($user); 解释说明:做 Drupal 主题模板开发一段时间会发现 print_r(); 函数将伴随始终,当你需要调用某个值的时候可以去请教跟你协作的后台工程师,也可以使用上面代码自行打印,然后找出自己需要的。示例中打印的即是所有 user 对象的值,有用户 ID 可以用来拼出用户的页面路径,有用户的角色,用户的头像,当然包含用户密码的 MD5 值信息等;拓展一下,你可以在 node.tpl.php 模板中打印 node 对象以达到完全拆分 cck 输出的信息和节点正文等各个字段。

2、判断用户是否登陆:global $user;

global $user;    if( $user->uid ){ /* 用户已经登陆 */ }else{ /* 用户没有登陆 */ }
解释说明:其实本示例是通过判断 uid 来区别用户是否登陆的,该使用方法可以扩展到根据 uid 的具体值来区分具体某个用户,如 if ( $user->uid == 1 ) 为超级管理员。

3、判断角色以区别对待:global $user;

global $user;    if( in_array('guest',$user->roles) ){ /* 用户 guest 角色 */ }else{ /* 不是该角色 */ }
解释说明:这里仍然是通过读取 user 对象获取其角色信息,其他的应用可以自己去拓展,如输出用户头像、输出用户基本信息等等。

4、判断用户是否有编辑权限:

if ( node_access('update', $node) ){ /* 具有编辑权限 */ } else { /* 不可编辑该节点 */ }
解释一下:示例用于区分当前用户是否具有对该节点的编辑权限,具有编辑权限是通常会输出编辑按钮或编辑的链接地址。

5、按节点 node 类型使用不同的 page 模板:

if( $node->type == 'blog' ){ include 'page-blog.tpl.php'; return; }
解释一下:通常我们会根据节点内容类型使用诸如 node-blog.tpl.php 格式的节点模板分别渲染,但如果想做到整个 page 都有所区别则需要示例中的代码。

6、按照 URL 选择不同的 page 模板:

if( arg(0) == 'admin' ){ include 'admin.tpl.php'; return; }
解释一下:这里的 URL 必须为 Drupal 的内部路径而不是通过 path 的 url 重写后的路径,而且模板引擎默认会先按路径寻找模板文件如 page-admin.tpl.php 如果没有找到才会读取 page.tpl.php 进而使示例代码生效。

7、在外部 JavaScript 文件中引用 Drupal 路径:

解释一下:如果你引入一个外部 JavaScript 脚本文件,而这个文件里面又恰好有用到网站路径的话就需要用到 Drupal 默认提供的 Drupal JS 对象了,在 JavaScript 文件中可以使用 Drupal.settings['basePath'] 来直接调用当前 Drupal 的根路径等同于 $base_path 变量或者是 base_path() 函数在 PHP 中使用。

8、在模板中定义更多区块位置:

function yourTheme_regions(){
    return array('side' => '边栏', 'head' => '页头', 'foot' => '页脚', 'content' => '内容');
}
解释一下:将代码放于模板文件夹下的 template.php 文件中(如果没有请创建并以 <?php 作为文件开头)即可在“管理-区块”页面定义更多区域位置,这块可能也是从 Joomla 到 Drupal 最不习惯的概念之一。

9、判断当前页面是否为首页:

if( $is_front ){ /* 首页代码 */ }
简单解释:通过判断 Drupal 变量 is_front 可以直接判断当前页面是否是首页,这在首页与内页结构样式相差不大的情况下将非常有用,可以方便的减少大量重复代码。

10、根据 URL 生成页面 Class ID 以更方便使用 CSS 定制外观:

 

简单解释:尽管 Drupal 的主题化定制已经非常灵活,但毕竟多数模块提供的 theme 函数非常有限,如果仅仅是为了调整一小块的样式而使用 page-*.tpl.php 甚至单独开发模块的话明显得不偿失,于是可以使用上面的变通的方法,这样页面在加载时会添加一个以当前路径命名的 Class 或 ID 这样就可以很方便的使用 CSS 的层级选择器来修改样式(如 div.path-node-add a { color:#F00; } 就可以方便的定制“node/add”页面的链接的样式而不需要单独创建 tpl 或覆写函数)这也正是 Yahoo UI 里面采用的方案。

11、语言 PO 的文件头信息:

msgid ""
msgstr ""
"Project-Id-Version: drupal (6.10)\n"
"POT-Creation-Date: 2009-05-06 23:18 +0800\n"
"PO-Revision-Date: 2009-04-16 23:06 +0800\n"
"Language-Team: Chinese, Simplified\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
简单解释,这是 Drupal 的本地化 PO 文件中简体中文(zh-hans)的头部信息,特别需要注意的是最后的 Plural-Forms 属性,一定不要写错。

12、定制搜索没有返回结果的页面:

我们知道定制 Drupal 的搜索结果页可在 phptemplate.php 里面通过覆写 theme_search_item($item, $type) 函数来实现,但如果搜索没有返回任何结果时 Drupal 是写死的,这里所实现的就是修改 “Check if your spelling is correct. 请检查您的拼写。” 部分的内容。

简单的说是通过在模板文件 box.tpl.php 里面判断 $title == t(‘Your search yielded no results’) 来实现搜索无结果页的定制。

简单解释,由于 Search 模块内没有提供“无返回搜索结果”时可供 phptemplate 覆写的主题函数,而是直接写死的(即“请检查您的拼写是否正确”等文字提示)而多数情况为了避免用户跳出,这里会做一些提示性信息或是一些链接;所以这里可以在 box.tpl.php 模板里面通过判断 title 为 “搜索没有找到任何结果” 来单独定制该页面的内容。

依葫芦画瓢,此方法可应用来定制其他模块里面所有使用 theme(‘box’, $title, $output) 函数渲染的输出内容部分,只需要在 box.tpl.php 里面判断 $title 的值与该模块输出的 $title 值相同(如评论模块里面的 theme(‘box’, t(‘Comment viewing options’), $output) 里面的 t(‘Comment viewing options’) 等等)即可;但不适用于 $title 为非固定值得部分,好在多数由 box 方式渲染的部分都是固定的(如 菜单管理页面的“导航”部分 提交评论的“提交新评论”部分 等等)。

13、取得网站的绝对路径: $base_path 和 base_path();

由于 Drupal 整站采用的都是相对路径,但当网站安装目录没有在根目录(/)下而我们又需要获得绝对路径的时候我们可以使用 $base_path(在 page.tpl.php 里)base_path()(在 node.tpl.php 里)变量或者函数获取。

14、配合 ImageCache 手工输出格式化图片输出效果:

print theme('imagecache', $preset, $image['filepath'], $alt, $title,  $attributes);
// $preset :预先在 admin 里面定义的 ImageCache 动作如缩放裁切等;
// $image['filepath'] :即文件的路径,可使用 upload 或者 CCK 的内容;
// $alt $title :即图片的 alt 及 title 属性,没有图片或关闭图片浏览时的替代文字及提示;
// $attributes :定义其他属性的一个数组,如图片的 class width height 等内容;
我们在使用 ImageCache 和 CCK 结合可以很方便的任意设置动态生成各种缩略图缓存,而在 tpl 模板文件中则可以直接使用上面的 theme 函数调用 ImageCache 中预设的动作实时生成图片缓存。

出处:http://nan.im/blog/922

发表于: 2012-02-16 06:55 | 全文(查看: 376) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: Drupal  新知  

Drupal中判断当前页面为分类页的方法

在Drupal中,分类系统路径都是类似这种格式:

taxonomy/term/10

taxonomy/term/17

那么,根据Drupal API,判断当前页面为分类页面,可以这样写:

if ( arg(0) == ‘taxonomy’ && arg(1) == ‘term’ ) {

echo ‘这是分类’;

} else {

echo ‘这不是分类’;

}

发表于: 2012-02-16 06:52 | 全文(查看: 326) | 评论(1) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: Drupal  新知  

AjaXplorer 档案管理器

AjaXplorer是一个基于Web(PHP编程语言)的易于安装的远程档案管理器。其丰富的图形用户界面使终端用户能够很清晰的查阅档案信息。其主要特点是管理文件的常用操作(上传,下载,移动,重命名等) ,在线文件编辑,图片预览,书签管理系统,等等。

 

AjaXplorer主要特征

可以对远程端文件进行全功能的操作,如上传、下载、删除、更名等

提供了一个在线编辑器

图片预览功能

完备的书签系统

 

AjaXplorer v4.0.1 主要是修复 4.0 的一些bug,但还包含新特性:默认规则概念和工具。

官网:http://sourceforge.net/projects/ajaxplorer/

发表于: 2012-02-12 04:45 | 全文(查看: 135) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: 文档管理  php  新知  

图片缩略图插件

一款插件thumbnail-for-excerpts(下载地址 http://wordpress.org/extend/plugins/thumbnail-for-excerpts/)你只需要进入后台进行激活!然后其他统统不用管了!该插件会自动检测你文章的第一幅图片作为摘要缩略图!不管该图片是不是上传到wordpress文件下,即使是外链图片同样有效。

默认情况下,它会自动按比例缩放为左右长100px 的大小,当然了这个大小你可以按自己的意愿在插件编辑页面进行修改!该插件只有一个PHP文件!非常小巧实用!

加一款:Post Thumbnail Editor(http://wordpress.org/extend/plugins/post-thumbnail-editor/)也不错,支持在线修剪图片:

发表于: 2012-02-12 03:55 | 全文(查看: 83) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  新知  

20条实用的WordPress PHP代码

假如你是一个比较喜欢折腾Wordpress主题的人,一定领教过PHP代码的强大作用和难度,可能你会因为要快速让自己的主题实现某些功能而在网上苦苦搜寻相关的代码,当你看到这篇文章的时候,你不用再如此奔波了,我已经收集了20个现成的Wordpress PHP代码,这些代码能够为你实现诸如“相关文章”,“最近更新的文章或页面”,“最近评论”,“评论最多文章”,等等功能,你不妨往下看,一定有你需要的。

显示最近文章

显示最近5篇文章:

<?php query_posts('showposts=5'); ?><ul><?php while (have_posts()) : the_post(); ?><li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li><?php endwhile;?></ul>
显示最近更新的文章或页面
<?php$today = current_time('mysql', 1);$howMany = 5; //你要显示的文章数目
if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_modified_gmt < '$today' ORDER BY post_modified_gmt DESC LIMIT $howMany")):?><h2><?php _e("Recent Updates"); ?></h2><ul><?phpforeach ($recentposts as $post) {if ($post->post_title == '') $post->post_title = sprintf(__('Post #%s'), $post->ID);echo "<li><a href='".get_permalink($post->ID)."'>";the_title();echo '</a></li>';}?></ul><?php endif; ?>
显示最近评论
<?phpglobal $wpdb;$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_type,comment_author_url,SUBSTRING(comment_content,1,30) AS com_excerptFROM $wpdb->commentsLEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =$wpdb->posts.ID)WHERE comment_approved = '1' AND comment_type = '' ANDpost_password = ''ORDER BY comment_date_gmt DESCLIMIT 10";$comments = $wpdb->get_results($sql);$output = $pre_HTML;$output .= "n<ul>";foreach ($comments as $comment) {$output .= "n<li>".strip_tags($comment->comment_author).":" . "<a href="" . get_permalink($comment->ID) ."#comment-" . $comment->comment_ID . "" title="on " .$comment->post_title . "">" . strip_tags($comment->com_excerpt)."</a></li>";}$output .= "n</ul>";$output .= $post_HTML;echo $output;?>
显示评论最多文章
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");foreach ($result as $topten) {$postid = $topten->ID;$title = $topten->post_title;$commentcount = $topten->comment_count;if ($commentcount != 0) { ?><li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a></li><?php } } ?>
显示分类目录
<h2>分类目录</h2><ul><?php wp_list_cats('sort_column=name'); ?></ul>
以下拉菜单的形式显示分类目录
<form action="<?php bloginfo('url'); ?>/" method="get"><?php$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');$select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select); echo $select; ?><noscript><input type="submit" value="View" /></noscript></form>
显示文章归档
<h2>文章归档</h2><ul><?php wp_get_archives('type=monthly'); ?></ul>
以下拉菜单的形式显示文章归档
<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'><option value=""><?php echo attribute_escape(__('Select Month')); ?></option><?php wp_get_archives('type=monthly&format=option&show_post_count=1'); ?> </select>
显示页面导航
<h2>页面</h2><ul><?php wp_list_pages('title_li='); ?></ul>
显示全球通用头像(WordPress 2.5+)
<?php if(function_exists(’get_avatar’)){ echo get_avatar($comment, ‘50?);} ?>
显示友情链接
<ul><?php get_links_list(); ?></ul>
显示“管理”
<ul><?php wp_register(); ?><li><?php wp_loginout(); ?></li><li><a href="http://www.wordpress.org/">WordPress</a></li><?php wp_meta(); ?><li><a href="http://validator.w3.org/check?uri=referer">XHTML</a></li></ul>
显示子页面
<?php$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');if ($children) { ?><ul> <?php echo $children; ?></ul>
<?php } ?>
显示WordPress标签
<?php the_tags(); ?>
显示WordPress标签云
<?php wp_tag_cloud('smallest=8&largest=36&'); ?>
新建一个页面模板
<?php
/* Template Name: Portfolio */
?>
动态标题标签
<title><?phpif (is_home()) { echo bloginfo('name');} elseif (is_404()) {echo '404 Not Found';} elseif (is_category()) {echo 'Category:'; wp_title('');} elseif (is_search()) {echo 'Search Results';} elseif ( is_day() || is_month() || is_year() ) {echo 'Archives:'; wp_title('');} else {echo wp_title('');}?></title>
单独页面显示PHP

Allows you to display plugins and such on a single page (replace home with the page you want it to only appear on):

<?php if ( is_home() ) { include ('file.php'); } ?>
显示网站外部的RSS Feed
<?php include_once(ABSPATH.WPINC.'/rss.php');wp_rss('http://wpforums.com/external.php?type=RSS2', 5); ?>
显示最近的Twitter 信息
<?php// Your twitter username.$username = "你的Twitter用户名";// Prefix - some text you want displayed before your latest tweet.// (HTML is OK, but be sure to escape quotes with backslashes: for example href="link.html")$prefix = "";// Suffix - some text you want display after your latest tweet. (Same rules as the prefix.)$suffix = "";$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1";function parse_feed($feed) {$stepOne = explode("<content type="html">", $feed);$stepTwo = explode("</content>", $stepOne[1]);$tweet = $stepTwo[0];$tweet = str_replace(”&lt;”, “<”, $tweet);$tweet = str_replace(”&gt;”, “>”, $tweet);return $tweet;}$twitterFeed = file_get_contents($feed);echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);?>

出处:http://www.chenchunlin.info/20-wordpress-php-codes.html

发表于: 2012-02-12 03:07 | 全文(查看: 151) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  新知  

在WordPress主题中自定义登录框

在博客的侧栏或者某个特定页面上添加一个用户登录框:
<<?php if (!(current_user_can('level_0'))){ ?>
<h2>Login</h2>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" />
<input type="password" name="pwd" id="pwd" size="20" />
<input type="submit" name="submit" value="Send" class="button" />
    <p>
       <label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Remember me</label>
       <input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>" />
    </p>
</form>
<a href="<?php echo get_option('home'); ?>/wp-login.php?action=lostpassword">Recover password</a>
<?php } else { ?>
<h2>Logout</h2>
<a href="<?php echo wp_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">logout</a><br />
<a href="http://XXX/wp-admin/">admin</a>
<?php }?>

发表于: 2012-02-11 10:23 | 全文(查看: 175) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  新知  

wordpress 首页摘要字数(内容截取方法)

wordpress做博客网站,最影响版面的是首页显示文章内容的全部,无论从美观,还是从SEO优化角度来说,都不是一件很乐观的事,阿杰收集了 几招方法,以改进wordpress首页摘要显示的字数,让wordpress首页内容截取更方便,重点是对index.php中的<?php the_content(); ?>作出修改。

第一:使全部发布的文章显示摘要设置;
通过火狐的插件工具查询到文字区域的class属性,然后再模板文件index.php 中查询class属性对应的位置,将下面的:

<?php the_content( ); ?>替换成下面这句即可。

<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 290,”…”); ?>

第二:在发布文章时候自助选择添加摘要设置:
通过工具查询到文字区域的class属性,然后再模板文件index.php 中查询class属性对应的位置,将下面的:

<?php the_content( ); ?>替换成下面这句即可。<?php the_excerpt();?>

第三种方法:显示更多阅读标签的替换方式:
<?php the_content( ); ?>替换成下面这句即可。

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark”><?php the_title(); ?></a></h2>        <?php the_content(__(‘继续阅读 &raquo;’)); ?>接着替换成下面:

<h2><a href=”<?php the_permalink() ?>” rel=”bookmark”><?php the_title(); ?></a></h2>   <?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 600,”…”); ?> <a href=”<?php the_permalink() ?>” rel=”bookmark”>继续阅读 »</a>

第四种列表页加摘要:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>     <li id=”post-<?php the_ID(); ?>”><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php printf(__(‘Permanent Link to %s’, ‘ctn1′), the_title_attribute(‘echo=0′)); ?>”><?php the_title(); ?></a><span><?php the_time(__(‘y-m-d’, ‘ctn1′)) ?></span></li>

<li>
<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 290,”…”); ?>
</li>
<?php endwhile; ?>
</ul>

以上红色部分是加进去的摘要代码,直接加会出现和标题在同一行上,我们就加了换行标签<li></li>就可以实现了。提供以上四种方法,都可以实现对wordpress 首页摘要字数的限制,打造完美博客。

发表于: 2012-02-11 04:25 | 全文(查看: 3013) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: wordpress  新知  
Page was generated in 47 milliseconds