最新、热评、随机日志函数三体合一
我果然是没有设计的天份,做了这么多 WordPress 收费主题以来,每次都是照着设计师或者客户提供的 PSD 照图制做。如今想小试一下切菜刀,自主研发设计了一款 Darkside 主题,没想到面市不到两天就这样夭折了。普遍访客表示字体和配色不搭调,可能我的审美观比较小众,但在博客这个大家庭中,我不能强迫访客来适应我那如此重口味的主题,只好又换回了之前用了一年多的 D&Z 主题。
换回 D&Z 主题就要面临一个 WordPress 版本的问题,因为在制作 Darkside 主题的时候,我特意将其兼容了最新的 WordPress 3.0 的导航菜单功能,也顺便将 WordPress 升级到了最新的 3.0.1 中文版。可是杯具的是之前的 D&Z 主题最高只是兼容到 WordPress 2.9.2,因为本不打算再升级该主题,这也是促使我做新主题的原因。而现在将主题切换回来也就意味着我又不得不升级一下 D&Z 主题,我看了一下,主要是最新日志、热评日志、随机日志三个功能无法实现。
其实这三个功能在函数上是很相近的,无非就是一个排序的不同,最新日志是按照发布时间排序,热评日志是按照评论数量排序,随机日志则是随机排序。所以我索性就把这三个函数合并为一,一方面减少 functions.php 中代码的冗余,另一方面也方便自己管理。
把以下函数复制到 WordPress 主题目录下的 functions.php 中:
$get_posts = query_posts('posts_per_page=10&caller_get_posts=1&orderby='.$orderby);
foreach ($get_posts as $get_post) {
$output = '';
$post_date = mysql2date('y年m月d日', $get_post->post_date);
$commentcount = '('.$get_post->comment_count.' 条评论)';
$post_title = htmlspecialchars(stripslashes($get_post->post_title));
$permalink = get_permalink($get_post->ID);
$output .= '<li><a href="' . $permalink . '" title="'.$post_title.'">' . $post_title . '</a>'.$$plusmsg.'</li>';
echo '<ul>'.$output.'</ul>';
}
wp_reset_query();
}
调用方法分别如下:
//最新日志
get_posts( $orderby = 'date', $plusmsg = 'post_date' );
//热评日志
get_posts( $orderby = 'comment_count', $plusmsg = 'commentcount' );
//随机日志
get_posts( $orderby = 'rand', $plusmsg = 'post_date' );
?>
可以看到它们三者共用一个函数,而只是参数不同罢了,如题,最新、热评、随机日志函数三体合一就完成了,为自己编出这么一个YD的标题而感到骄傲,哈哈~效果的话就请看我的侧边栏吧。用 D&Z 主题又想升级到 WordPress 3.0+ 的朋友注意看一下了,请根据本文自行修改。
-
Darkside 主题上线测试2010年08月19日 -
新年新气象,博客换新衣2012年01月20日 -
Wordpress 我变我变我变变变2011年04月27日 -
Wordpress 自定义顶部图像2011年01月29日