分类目录归档:WordPress

代码实现WordPress归档页面模板

文章转载:http://zww.me/

特点:

1. 这个存档函数会在数据库生成一个表 SHe_archives_25216,用来保存在文章新发表/删除文章时生成的 html,这主要是加快访问速度,不用每次都要查询数据库生成归档。

2. 显示每月文章数

3. 显示每篇文章的评论数

效果: http://zww.me/archives

详细步骤

1. 把下面的 archives_list_SHe 函数代码扔进主题的 functions.php 里面。

function archives_list_SHe() {
     global $wpdb,$month;
     $lastpost = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_date <'" . current_time('mysql') . "' AND post_status='publish' AND post_type='post' AND post_password='' ORDER BY post_date DESC LIMIT 1");
     $output = get_option('SHe_archives_'.$lastpost);
     if(empty($output)){
         $output = '';
         $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'SHe_archives_%'");
         $q = "SELECT DISTINCT YEAR(post_date) AS year, MONTH(post_date) AS month, count(ID) as posts FROM $wpdb->posts p WHERE post_date <'" . current_time('mysql') . "' AND post_status='publish' AND post_type='post' AND post_password='' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC";
         $monthresults = $wpdb->get_results($q);
         if ($monthresults) {
             foreach ($monthresults as $monthresult) {
             $thismonth    = zeroise($monthresult->month, 2);
             $thisyear    = $monthresult->year;
             $q = "SELECT ID, post_date, post_title, comment_count FROM $wpdb->posts p WHERE post_date LIKE '$thisyear-$thismonth-%' AND post_date AND post_status='publish' AND post_type='post' AND post_password='' ORDER BY post_date DESC";
             $postresults = $wpdb->get_results($q);
             if ($postresults) {
                 $text = sprintf('%s %d', $month[zeroise($monthresult->month,2)], $monthresult->year);
                 $postcount = count($postresults);
                 $output .= '
  • ' . $text . '  (' . count($postresults) . ' ' . __('篇文章','freephp') . ')
      ' . "\n"; foreach ($postresults as $postresult) { if ($postresult->post_date != '0000-00-00 00:00:00') { $url = get_permalink($postresult->ID); $arc_title = $postresult->post_title; if ($arc_title) $text = wptexturize(strip_tags($arc_title)); else $text = $postresult->ID; $title_text = __('View this post','freephp') . ', "' . wp_specialchars($text, 1) . '"'; $output .= '
    • ' . mysql2date('d日', $postresult->post_date) . ': ' . "$text"; $output .= ' (' . $postresult->comment_count . ')'; $output .= '
    • ' . "\n"; } } } $output .= '
' . "\n"; } update_option('SHe_archives_'.$lastpost,$output); }else{ $output = '
'. __('Sorry, no posts matched your criteria.','freephp') .'
' . "\n"; } } echo $output; }

2. 复制一份主题的 page.php 更名为 archives.php,然后在最顶端加入:


再然后找到类似 ,在其下面加入如下代码

全部展开/收缩

进wp后台添加一新页面,在右侧栏模板选择 archives

3. 如果你的主题本身加载了 jQuery 库,那么继续把下面的 jQ 代码加上去,就会有滑动伸缩效果了

/* 存档页面 jQ伸缩 */
 $('#expand_collapse,.archives-yearmonth').css({cursor:"s-resize"});
 $('#archives ul li ul.archives-monthlisting').hide();
 $('#archives ul li ul.archives-monthlisting:first').show();
 $('#archives ul li span.archives-yearmonth').click(function(){$(this).next().slideToggle('fast');return false;});
 //以下下是全局的操作
 $('#expand_collapse').toggle(
 function(){
 $('#archives ul li ul.archives-monthlisting').slideDown('fast');
 },
 function(){
 $('#archives ul li ul.archives-monthlisting').slideUp('fast');
 });

存档页面插件 可省略。

css 样式可以通过 #archive 来定义

某段时间内的读者墙

文章转载:http://zww.me/

说明:核心部分就是代码中时间显示部分代码,2010-09-01 00:00:00 是结束时间,43664 MINUTE 是指统计范围为 2010.9.1 0:00 前30天过7小时44分内,其实就是 2010.8.1 16:16 ~2010.8.31 24:00这个时段啦。

    get_results(" SELECT COUNT(comment_author) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( '2010-09-01 00:00:00', INTERVAL 43664 MINUTE ) AND user_id='0' AND comment_author_email != $my_email AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT $limit_num "); foreach ($counts as $count) { $c_url = $count->comment_author_url; if ($c_url == '') $c_url = $noneurl; $mostactive .= '
  • ' . ''.get_avatar($count->comment_author_email,$size='40').'
  • '; } echo $mostactive; ?>

一些例子:

1. 2010.8.18~2010.8.20内的读者墙:date_sub( ‘2010-08-20 00:00:00’, INTERVAL 3 DAY)

2. 最近一周内:date_sub(NOW(), INTERVAL 1 WEEK)

……

====================================

附:SQL 的 date_sub() 函数

DATE_SUB() 函数从日期减去指定的时间间隔。

语法

DATE_SUB(date,INTERVAL expr type)

date 参数是合法的日期表达式;expr 参数是您希望添加的时间间隔。

Type 值

MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

====================================

无插件 完美实现WordPress评论表情

文章转至:http://ons.me/

下载smiley.php文件,点我下载,把此文件上传到你的主题文件夹下面。修改主题文件夹下面的comments.php,找到textarea,在上面加上

  

修改主题文件夹下面的CSS文件,里面加一句

 #smilelink{cursor:pointer; width:465px;} 

OK。

注:如果发现点击表情评论框无反应,请检查comments.php里面的textarea的id是多少,然后复制那个id,替换到smiley.php里面的comment即可。自己查找,一共有三个comment需要替换。

为 WordPress 添加主题后台控制选项

文章转至:http://wange.im/
WordPress 主题中,出于方便用户管理和操作的原因,都集成了主题的后台控制选项,今天就举例说明如何给 WordPress 主题添加后台控制选项。
首先,在你的 WordPress 主题目录下新建一个 control.php 文档,然后把以下代码粘贴进去:

 "这里是大标题","type" => "heading","desc" => "这里是描述信息"),
    array("name" => "这里是小标题","id" => $shortname."_test","std" => "这里是默认值","type" => "text")
);
function mytheme_add_admin() {
    global $themename, $shortname, $options;
    if ( $_GET['page'] == basename(__FILE__) ) {
        if ( 'save' == $_REQUEST['action'] ) {
            foreach ($options as $value) {
            update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
            foreach ($options as $value) {
            if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ]  ); } else { delete_option( $value['id'] ); } }
            header("Location: themes.php?page=control.php&saved=true");    //这里的 control.php 就是这个文件的名称
            die;
        } else if( 'reset' == $_REQUEST['action'] ) {
            foreach ($options as $value) {
                delete_option( $value['id'] );
                update_option( $value['id'], $value['std'] );
            }
            header("Location: themes.php?page=control.php&reset=true");    //这里的 control.php 就是这个文件的名称
            die;
        }
    }
    add_theme_page($themename." Options", "$themename 设置", 'edit_themes', basename(__FILE__), 'mytheme_admin');
}
function mytheme_admin() {
    global $themename, $shortname, $options;
    if ( $_REQUEST['saved'] ) echo '

'.$themename.' 设置已保存。

'; if ( $_REQUEST['reset'] ) echo '

'.$themename.' 设置已重置。

'; ?>

设置

: " size="40" />



之后,再在 functions.php 中 include 以上代码:

require_once(TEMPLATEPATH . '/control.php');

  这样,一个超简易的后台就完成了,在 WordPress 后台左侧栏的控制面板 – 外观中可以看到多了一个设置选项。
  接下来就是最后一步,调用主题后台的设置,在 WordPress 主题中需要的位置插入以下代码即可:

 需要注意的是这个调用的格式,其中 wange 是刚才在 control.php 中开头部分定义的主题简写,后面的 _test 则是在主题设置中定义的数组的 id 键。

针对Gravatar评论头像被墙,无法显示的解决方案

修改wp-includes文件夹下面的pluggable.php文件。用记事本或者其他文本编辑器打开—转到1645行看到这些代码

if ( is_ssl() ) {
$host = 'https://secure.gravatar.com';
} else {
if ( !empty($email) )
$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );
else
$host = 'http://0.gravatar.com';
}

替换成下面这些代码然后保存覆盖,Gravatar评论头像就可以显示了。

 if ( is_ssl() ) {
$host = 'https://secure.gravatar.com';
} else {
$host = 'http://www.gravatar.com';
}

去TM墙吧!

随机显示缩略图片的简单方法

转自:http://zww.me/

这方法就是用随机函数 mt_rand() 产生一个随机数,然后按照这个随机数显示对应名称的图片。方法虽然原始,但我觉得好用,下面就说说实现方法,也许有朋友和我一样需要这样折腾玩

下面的用随机显示 5 张图片做例子

1. 准备好5张不同的缩略图片放在主题的images目录下,命名为:0.png、1.png、2.png、3.png、4.png

2. 修改主题的 index.php (有些主题是 home.php),找到

 

在其上面加入如下代码:

';
?>

3. 如果你用了WordPress 2.9新加的文章缩略图功能,可以结合使用:有缩略图显示缩略图,没有的话显示随机图片


	
		 'alignleft', 'alt' => 'alttext')); ?>
	
';
} ?>

T.QQ 精仿版 隆重发布 点击进入下载

感谢:首先,感谢 zww 大哥,qiqiboy 高手,没有他们俩无私的出手相助,就没有T.QQ这次跨时代的更新。在一次谢谢他们!!!谢谢

== T.QQ ==
制作人: 东风 DOFEO
主页: http://www.cdyy.cn/
展示: http://www.dfblog.com.cn/
更新: 2010-10-15
== 主题介绍 ==
————————————
无插件即可完美使用。
————————————
本次更新:

—–我是华丽的分割线——–

14号更新:

支持category-icons(侧边栏分类图标)插件
13号更新:

修改主页文章的hover
主页评论展示显示仿微博显示样式
文章分类图标无法显示BUG[必须用绝对路径]

—–我是华丽的分割线——–

12号更新:

优化了一些CSS代码。去掉footer.php上的wXc,css3验证。评论栏的小调整。等
——我是华丽的分割线——–
11号发布

以下文件全部被蹂躏过。
index.php/
archive.php/
comments.php/
footer.php/
functions.php/
header.php/
links.php/
page.php/
sidebar.php/
single.php/
style.css

== 具体使用方法 ==
————————————
首页分类图标:
打开index.php 填写绝对路径。之后把你的分类图片放在你设置的路径下面,然后改成你分类的别名称即可。
注意,分类图片的名称是你分类的别名。
侧边栏图标实现方法:
1.如果分类不多,可以直接在侧边栏里用最原始的插入图片加分类名,一个一个的添加就行。
2.可以用category-icons插件实现。(安装设置即可使用)
————————————
== 兼容性 ==
————————————
支持 WordPress 2.5.1/2.6.3/2.7.1/2.8.1/2.9.2/3.0.1/,
测试浏览器: IE/7/8/9[圆角无法显示], Firefox,Chrome,Opera 暂未发现问题
最佳浏览分辨率 1024×768 或者更高.
————————————
== 插件 ==
去掉WP-PageNavi
去掉WP23 Related Posts
去掉WP-RecentComments
去掉WP-EasyArchives
————————————
支持category-icons(侧边栏分类图标)
支持WP-PostViews
支持WP-Syntax
支持polls-css
支持Mail To Commenter
支持Quick Comments
如果主题出现/发现问题,请进入guestbook留言 告诉我,如果你喜欢也希望你能推荐你的朋友。

如何去除BlueSpeech底部的备案信息

Inove它使用的是PO,MO实现汉化,为了方便,我就直接在BlueSpeech的PO汉化文件里面添加上了备案信息。而提供下载的BlueSpeech并没有把它给删除掉,导致了一些新手找不到备案信息添加在哪里。其实很简单,用Poedit打开languages\zh_CN.po找到备案那个删除就行。现在把删除过备案信息的zh_CN.po放上来,直接替换掉即可。老鸟笑笑路过就行。

继续阅读

八款WordPress开发设计插件推荐

WordPress引人瞩目的其中一个最大因素就是围绕这个内容管理系统而进行的开发也不尽其数。由于WordPress自身的灵活性,设计师和程序员可以制作出各种富于灵感的WordPress设计 。如果你也想学习如何制作WordPress主题创造出精美的设计,这里有几款插件可以帮助你出色地完成WordPress设计的开发:

1. 主题开关和预览(Theme Switch & Preview)
Nicolas Kuttler制作的这款插件可以在线预览模板。而且它还有一个小工具和短代码,开关WordPress设计都非常容易。该插件提供了很多选择,做为开发人员你肯定会爱上它的。

2. 用户切换(User Switching)

这款插件非常精妙,它可以让你在多用户之间轻松切换。如果你的客户要求你为他设计一个适用于多个低级别的账户的主题,且不希望这些用户看到控制后台的设置,那么这时候你就可以借助这款插件进行开发。只要点击一个按钮你就可以在不同用户之间进行切换。

3. 获取图像(Get the image)

所谓获取图像插件就是为你抓取图像的插件。你可以通过它抓取图像,然后在使用自定义字段的文章里显示。WP的发布图片功能或者你也可以从文章中提取图片。如果你喜欢张贴图片,那么这款插件再合适不过了。这里是关于它的FAQ

4. 查询文章(Query Posts)

对那些不喜欢折腾PHP的人来说,这款插件简直就是为他们量身打造的。这款插件创建了一个小工具可以让你按自己想要的方式来显示文章。使用这个小工具,用户不需要懂代码就可以按自己希望的方式来显示条目。它支持分类、标签、自定义分类法、作者、日期、时间等等。

5. NextGEN图库(NextGEN Gallery)

这款插件真得很有价值,个人觉得它可以成为 WordPress核心的一个组成部分。 这款插件对于图片来说是一个非常完整的内容管理系统,并且它还有它自己的插件。不管你是WordPress开发的还是单纯的WordPress用户,我觉得你可以将这款插件列入WordPress必装插件列表

6. YD Network-wide Options

YD Network-wide options插件可以让你在整个WordPress3.0网络的博客内轻松地复制博客或插件配置。它与WordPressMu兼容,并且作者也会经常对它进行更新。

7. 成员(Members)

类似用户切换插件, members插件可以让你管理WordPress中的用户角色。这款插件可以让你管理各个角色的权限范畴。你可以给角色添加或删除功能,也可以创建新的角色。这样确保了所有用户只能享受到你规定的权限。如果你打算把WordPress当作内容管理系统来运作的话,这个插件是必不可少的。

8. 自定义文章类型用户界面(Custom Post Type UI)

这款插件为你提供了一个维护自定义内容类型和分类法的用户界面。WordPress 3.0为自定义内容类型和分类法提供了更好的支持,这款插件大大提高了用户界面的易用性。这是一款非常出色的插件,也是每一个WordPress设计师必备的工具。

WordPress主题汉化翻译教程,你也是一位wordpress达人。

很多达人为Wordpress开发了主题,国内外经典主题比比皆是。但是优秀的汉字始终是咱们的根基,使用外国哥们儿的主题当然还是把它改成中文比较好。

开始教你如何成为一位wordpress主题汉化达人。

第一步,找到你要汉化的内容。然后改成相对应的中文,雷人点没关系,确实能体现出你的个性。

第二部,另存为替换原文件,设置编码为UTF-8,确定保存。这步很重要,编码必须是UTF-8,否则将出现乱码。

第三部,刷新,哈哈!看看你修改的地方,是不是已经成为中文了。

第四步,恭喜,你已经成为了一位wordpress达人了。

如有不懂,或者疑难问题,欢迎给我留言。

难道T.QQ出国了?有点激动!!!

这两天有空对主题进行了更改、修复和优化,整体上已经没有了什么大的BUG,外形方面也算的上比较凑合。看一些wper朋友们的反应不错。确实挺开心的。不过也不乏有人不喜欢T.QQ这款主题。当然,我只是以我的意愿来做我喜欢的,这结出的果肯定不能让每一位满意。反正我很喜欢这款主题。
说说主题事儿:我的技术有限,目前只能做到这样,想做到更好,须进一步学习。如CSS、php、sql数据库之类的,须好好学一学。对于这款主题,我打算慢慢的会把T.QQ主题优化更改下去。直到对它彻底的厌烦。
意外发现一个不知道什么文(不是英文)的网站,居然用的是【T.QQ主题】。我琢磨着到底是中国人用外文赚外汇,还是,真是一个名副其实的外国网站用上了T.QQ。给个截图看看。这着实让我激动一番。

wordpress语言文件.po.pot.mo简介及汉化

一、文件简介
.po文件,.mo文件,.pot文件是由gettext程序生成或者使用的源代码和编译结果。其中,
1、.pot文件
是一种模板文件,其实质与.po文件一样,其中包含了从源代码中提取所有的翻译字符串的列表,主要提供给翻译人员使用。
2、.po文件
(1)用程序msginit来分析pot文件,生成各语言对应的po文件,比如中文就是zh_CN.po,法语就是fr.po文件。
(2)PO是Portable Object(可移植对象)的缩写形式,它是面向翻译人员的、提取于源代码的一种资源文件。
(3).po文件可以用任何编辑器如poEdit,vi,Emacs,editplus打开,交给翻译人员来将其中的文字翻译成本国语言。
3、.mo文件
(1)用msgfmt将.po文件编译成mo文件,这是一个二进制文件,不能直接编辑。
(2)MO是Machine Object(机器对象)的缩写形式,它是面向计算机的、由.po文件通过GNU gettext工具包编译而成的二进制文件,应用程序通过读取.mo文件使自身的界面转换成用户使用的语言,如简体中文。
(3)可以用工具如msgunfmt命令将.mo文件反编译为.po文件。 继续阅读