前言:
题目夸张了,说白了就是些能用代码实现的功能就不用 wordpress 那强大的、无数的、吸引人的插件了,也就是我折腾现在这个主题和 wordpress 的相关总结和记录,一方面方便自己不用到处搜和翻,一方面方便和我一样的折腾之人。当然,老鸟直接漂,现在天气转凉了,很容易漂~
自打读书起就怕语文,尤其是作文,所以文笔方面就不要过多要求,也就是说我写的文章就是通俗易懂了。- -
不管你是和我一样不太懂css和php还是一窍不通,你都可以按照步骤一步一步达到你所要的目的,只要折腾前先做好备份就万事无忧。资源来自网络,网络就要发挥共享精神嘛(你共享我用,我共享你用),当然我会尽量注明出处,不管是不是第一手。
费话一大堆,通常是有点岁数的人的毛病,上了点岁数就总是比较多感慨和废话。这不,这句也是废话,那么现在就正式开始跟题目有关的东东!
哦,忘了说,因为都是些代码,所以文章也就会变得很长,于是乎学学分几篇来记录,所以这篇是part 1(不好意思又废话了)
一、完全手动禁止Wordpress修订功能
2010.4.8 Edit: 由于WP升级很快,代码变化快,完全禁止WP修订功能还是用插件吧,别折腾这个了
这个功能有专门的插件实现,但我就是不太喜欢用插件,插件虽然方便,但看到一大堆插件拖慢速度就是不爽。
方法来源于网络,我曾经在《完全手动禁止Wordpress修订功能》说过,这里直接搬过来就ok了
- 打开 'wp-includes/default-filters.php' 文件,找到以下代码:
add_action( 'pre_post_update', 'wp_save_post_revision' );
这段语句主要是在每次更新文章时,调用'pre_post_update' 这个函数,来创建修订版,所以在这段语句前添加 '//'将其转为注释,这样就可以安静了。
//add_action( 'pre_post_update', 'wp_save_post_revision' );
- 打开 'wp-admin/includes/post.php' 文件,找到以下代码:
return _wp_put_post_revision( $_POST, true );
修改为:
return edit_post();
这样以后每次在修改已发布文章时,就不再会出现修订版了,而且保留了自动保存草稿的功能。不过缺点就是,每次升级Wordpress都需要重新修改,不过手动嘛就是要这样。
二、最新评论代码 - Recent Comments
较新版本
2010.7.5:《带头像显示的最新评论代码 - 蛋疼篇》
2009.12.11:《带头像显示的最新评论代码 - 完善篇》
--------------------------
这个来自哪里我竟然忘了,那么就是来自互联网了,呵呵。这个是支持显示 gravatar 头像的,效果可以看我博客首页侧边栏。代码如下,使用 sql 实现的,对中文支持非常好,但英文博客就还是算了。
<h2>Recent Comments</h2>
<ul>
<?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,comment_author_email, SUBSTRING(comment_content,1,16) 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 = '' AND user_id='0' 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'), 24).strip_tags($comment->comment_author).":<br />" . " <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;?>
</ul>
说明:comment_content,1,16 中的16是每个留言的文字摘取数量;……ORDER BY comment_date_gmt DESC LIMIT 10 中的10是留言数量
最好用 css 自定义一下 gravatar 图片位置,可以参考一下我的:
#sidebar img.avatar{float:left;position:relative;border:1px solid #ddd;padding:1px;margin-right:5px;}
三、最新文章代码 - Recent Posts
这代码应该是来自帕兰映像的了,可以直接去老帕那看,他那好东西很多,嘿嘿。代码如下:
<h2>Recent Posts</h2>
<ul>
<?php
$myposts = get_posts('numberposts=10&offset=0&category=0');
foreach($myposts as $post) :
setup_postdata($post);
?>
<li><span><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span>
<span><?php the_time('Y/m/d'); ?>.</span>
</li>
<?php endforeach; ?>
</ul>
说明:numberposts 是文章数量
四、随机文章代码 - Random Posts
同上也是来自帕兰映像
<h3>Random Posts</h3>
<ul>
<?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; ?>
</ul>
五、最热文章代码 - Hot Posts
忘了哪里搜来的,那么又是来自互联网!很好用,代码如下:
<h2>Hot Posts</h2>
<ul>
<?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 $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> (<?php echo $commentcount ?>)</li>
<?php } } ?>
</ul>
六、本月评论最多的朋友 / 读者墙
新版本:《WordPress 免插件读者墙 willin 版本》
这段代码记得貌似是来自水--岩之源,但后来我去他那找又找不到关于这段代码的文章,只有那个灌水先锋插件,我想应该是后来他出了插件后就把这段代码的文章删除了。这段代码我修改过,现在只显示评论者图像的了,所以类似最近比较火的读者墙插件,效果看我的首页侧边栏最顶端。
<?php //本月评论最多的朋友 $identity="comment_author"; $passwordpost = " AND post_password=''"; $userexclude = " AND user_id='0'"; $approved = " AND comment_approved='1'"; $interval = 30; $shownumber = 12; $counts = $wpdb->get_results("SELECT COUNT(" . $identity . ") 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 MONTH(comment_date)=MONTH(now()) and YEAR(comment_date)=YEAR(now())" . $userexclude . $passwordpost . $approved . ") AS tempcmt GROUP BY " . $identity . " ORDER BY cnt DESC LIMIT " . $shownumber); ?> <h2>本月最活跃的朋友</h2> <ul class="ffox_most_active"> <?php if ( $counts ) : foreach ($counts as $count) : echo '<li class="mostactive">' . '<a href="'. $count->comment_author_url . '" title="' . $count->comment_author . ' ('. $count->cnt . '评论)">' .get_avatar($count->comment_author_email,40).'</a></li>'; endforeach; endif; ?> </ul>
说明:$shownumber 是显示的评论作者数量,因为每周的算法不准确,所以其他参数就不说明了。
**************************************************
用代码武装你的wordpress [part 1] <--当前
- 本文标题:用代码武装你的wordpress [part 1]
- 本文链接:https://zww.me/archives/24671
- 发布时间:2009年10月09日 23:05
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
请问,最新文章代码读取的是最多评论文章,怎么读取最多浏览量的文章呢?
不使用插件可以实现吗?显示文字浏览量和最多浏览量文章
@小西 最多浏览量的文章要用插件postview,代码不行——没有参数;
最新文章请顾名思义。
观看观看~~
@Terry 荒淫围观
元宵恭祝元宵节快乐。。
@笨笨 节日快乐!
@zwwooooo
用了你本文的:五、最热文章代码 - Hot Posts
有点错位,评论数目出现在下一行。。。
@笨笨 这是什么问题?文章标题过长一行不够显示当然会换行了,你看我侧边栏的
Z大,你以后能不能顺便写上这些代码放在哪个文件的哪个位置,以方便我这种WP的新手使用。。谢谢了。
@andy1 呃?那些最新文章、最新评论、读者墙、最热文章什么的直接放到你的主题文件里面,一般是侧边栏,侧边栏主题文件是 sidebar.php,你最好了解一下wp的主题文件结构
果然强大
我很喜欢你的这类文章,尤其代码类的,本文对我用处很大,往后我会经常来的
欢迎访问我的博客http://www.wanfone.cn
@罗子夏 评论不要加上回访信息比较好,很多博主会感觉反感的,呵呵
我想问一下那个显示最新评论的代码 还有调整图片的代码贴到哪? 谢谢啊 我还不太会
@suingua 最新评论代码一般放到sidebar.php里面,具体位置自己根据主题加。
调整图片的css代码放到style.css里面,但也要注意自己主题样式修改。
真不错,做个记号
@香水 请随便使用
正在借鉴用来装修BLOG,随后会添加针对这里原文的引用
@iLio 慢慢折腾
[...] 注:我所参考的代码主要来自这里:用代码武装你的wordpress [part 1](还有精彩的其他部分) [...]
很实用啊~~ 我正在删插件最近 哈哈
@自由人 慢慢折腾
刚又搞了下CSS跟那个表情符号转换,这下最新评论搞定了
还是用插件实现比较好,否则升级又要改代码。
或是用类似windows live write工具
收藏了,很有用
@Leyond 慢慢折腾
[...] 用代码武装你的wordpress [part 1] [...]
博主强大,我得收藏了慢慢看~
@zchiy2k 慢慢折腾
额。我的读者墙为何是显示一竖行啊,不能想你这样一行一行地显示哦,麻烦您给我这个小菜解答一下
@yetone 还是css定义问题,你定义好ul li为float:left;
[...] 于是只好改道去zwwoOoOo学习,试过了一遍后成功显示头像。但是正如万戈提到的IE下不提示盖了多少楼,所以就稍加改造,让我这不知为什么显示不出来的读者墙兼容他们两个的代码。 [...]
[...] 在wp侧栏显示评论最多的文章,现在只要Copy一段代码就可以实现。可以参考Zwwoooo博客中《用代码武装你的wordpress [part 1]》一篇文章中“最热文章”代码。Zwwoooo(怎么这么多O )说已经忘记了代码从哪里复制来的?我在http://www.wprecipes.com/看到以下一篇文章:WordPress hack: Get popular posts by comments count,里面有一段代码和Zwwoooo从网上找来的代码类似。但实际上,http://www.wprecipes.com/上这段代码是有问题的: [...]
@不羡鱼
够简洁,哈
@zwwooooo
第3行 $pop = $wpdb---> 应改为 $pop = $wpdb->
多了--,汗
@不羡鱼
这个我知道,呵呵