三仔 發表於 2023-10-26 00:00:00

WordPress 实现文章评论排行榜

<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
用到了WordPress功能函数Query_post()的一种高级用法,就是获取本周或当月或最近30天评论最多的一定数量的日志。</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
使用方法是将以下各段代码放置到需要显示最热日志的主题模板文件中适当的位置即可,如边栏(sidebar.php)。</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
所有时间内评论最多日志</p>
<blockquote>
<ol>
<li>
<span><span>&lt;</span><span>ul</span><span>&gt;</span><span> </span><span>&lt;?</span><span>php</span><span> query_posts('</span><span>post</span><span>post_type</span><span>=post&amp;</span><span>posts_per_page</span><span>=</span><span>10</span><span>&amp;</span><span>orderby</span><span>=</span><span>comment_count</span><span>&amp;</span><span>order</span><span>=</span><span>DESC</span><span>'); while (have_posts()): the_post(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;</span><span>li</span><span>&gt;</span><span>&lt;</span><span>a</span><span> </span><span>href</span><span>=</span><span>"&lt;?php the_permalink(); ?&gt;"</span><span> </span><span>title</span><span>=</span><span>"&lt;?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?&gt;"</span><span> </span><span>rel</span><span>=</span><span>"bookmark"</span><span>&gt;</span><span>&lt;?</span><span>php</span><span> the_title(); </span><span>?&gt;</span><span>&lt;/</span><span>a</span><span>&gt;</span><span>&lt;/</span><span>li</span><span>&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;?</span><span>php</span><span> endwhile; wp_reset_query(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;/</span><span>ul</span><span>&gt;</span><span> </span></span>
</li>
</ol>
</blockquote>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
这段代码默认显示前10篇评论最多的日志,数量10可修改为其它数值。<br>
本周评论最多日志<br>
要显示本周评论最多日志,我们就可以使用如下的代码,也就是在前面代码的基础上再添加一些额外的参数来实现:</p>
<blockquote>
<ol>
<li>
<span><span>&lt;</span><span>ul</span><span>&gt;</span><span> </span><span>&lt;?</span><span>php</span><span> $</span><span>week</span><span> = </span><span>date</span><span>('W'); $</span><span>year</span><span> = </span><span>date</span><span>('Y'); query_posts('</span><span>post</span><span>post_type</span><span>=post&amp;</span><span>posts_per_page</span><span>=</span><span>10</span><span>&amp;</span><span>orderby</span><span>=</span><span>comment_count</span><span>&amp;</span><span>order</span><span>=</span><span>DESC</span><span>&amp;</span><span>year</span><span>=</span><span>' . $year . '</span><span>&amp;</span><span>w</span><span>=' . $week); while (have_posts()): the_post(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;</span><span>li</span><span>&gt;</span><span>&lt;</span><span>a</span><span> </span><span>href</span><span>=</span><span>"&lt;?php the_permalink(); ?&gt;"</span><span> </span><span>title</span><span>=</span><span>"&lt;?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?&gt;"</span><span> </span><span>rel</span><span>=</span><span>"bookmark"</span><span>&gt;</span><span>&lt;?</span><span>php</span><span> the_title(); </span><span>?&gt;</span><span>&lt;/</span><span>a</span><span>&gt;</span><span>&lt;/</span><span>li</span><span>&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;?</span><span>php</span><span> endwhile; wp_reset_query(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;/</span><span>ul</span><span>&gt;</span><span> </span></span>
</li>
</ol>
</blockquote>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
最近30天评论最多日志</p>
<blockquote>
<ol>
<li>
<span><span>&lt;</span><span>ul</span><span>&gt;</span><span> </span><span>&lt;?</span><span>php</span><span> function filter_where($</span><span>where</span><span> = </span><span>''</span><span>) { //posts in the last 30 days $where </span><span>.</span><span>= </span><span>" AND post_date &gt; '"</span><span> . date('Y-m-d', strtotime('-30 days')) . "'"; return $where; } add_filter('posts_where', 'filter_where'); query_posts('</span><span>post</span><span>post_type</span><span>=post&amp;</span><span>posts_per_page</span><span>=</span><span>10</span><span>&amp;</span><span>orderby</span><span>=</span><span>comment_count</span><span>&amp;</span><span>order</span><span>=</span><span>DESC</span><span>'); while (have_posts()): the_post(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;</span><span>li</span><span>&gt;</span><span>&lt;</span><span>a</span><span> </span><span>href</span><span>=</span><span>"&lt;?php the_permalink(); ?&gt;"</span><span> </span><span>title</span><span>=</span><span>"&lt;?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?&gt;"</span><span> </span><span>rel</span><span>=</span><span>"bookmark"</span><span>&gt;</span><span>&lt;?</span><span>php</span><span> the_title(); </span><span>?&gt;</span><span>&lt;/</span><span>a</span><span>&gt;</span><span>&lt;/</span><span>li</span><span>&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;?</span><span>php</span><span> endwhile; wp_reset_query(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;/</span><span>ul</span><span>&gt;</span><span> </span></span>
</li>
</ol>
</blockquote>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
“30 days”可以根据需要修改为其他值(如“1 year”, “7 days”, 等)。</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
本月评论最多日志<br>
类似地,显示当月评论最多的日志,可以使用下面的代码:</p>
<blockquote>
<ol>
<li>
<span><span>&lt;</span><span>ul</span><span>&gt;</span><span> </span><span>&lt;?</span><span>php</span><span> $</span><span>month</span><span> = </span><span>date</span><span>('m'); $</span><span>year</span><span> = </span><span>date</span><span>('Y'); query_posts('</span><span>post</span><span>post_type</span><span>=post&amp;</span><span>posts_per_page</span><span>=</span><span>10</span><span>&amp;</span><span>orderby</span><span>=</span><span>comment_count</span><span>&amp;</span><span>order</span><span>=</span><span>DESC</span><span>&amp;</span><span>year</span><span>=</span><span>' . $year . '</span><span>&amp;</span><span>monthnum</span><span>=' . $month); while (have_posts()): the_post(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;</span><span>li</span><span>&gt;</span><span>&lt;</span><span>a</span><span> </span><span>href</span><span>=</span><span>"&lt;?php the_permalink(); ?&gt;"</span><span> </span><span>title</span><span>=</span><span>"&lt;?php printf(esc_attr('Permalink to %s'), the_title_attribute('echo=0')); ?&gt;"</span><span> </span><span>rel</span><span>=</span><span>"bookmark"</span><span>&gt;</span><span>&lt;?</span><span>php</span><span> the_title(); </span><span>?&gt;</span><span>&lt;/</span><span>a</span><span>&gt;</span><span>&lt;/</span><span>li</span><span>&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;?</span><span>php</span><span> endwhile; wp_reset_query(); </span><span>?&gt;</span><span> </span></span>
</li>
<li>
<span><span>&lt;/</span><span>ul</span><span>&gt;</span><span> </span></span>
</li>
</ol>
</blockquote>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>欢迎补充说明~</span>
頁: [1]
查看完整版本: WordPress 实现文章评论排行榜