前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress边栏中文本小工具获取某段时间内最热文章

WordPress边栏中文本小工具获取某段时间内最热文章

作者头像
沈唁
发布2018-07-04 10:20:37
4470
发布2018-07-04 10:20:37
举报
文章被收录于专栏:沈唁志沈唁志

WordPress在边栏中显示最热文章,这个功能大多数主题应该都集成好了,当然我的主题是没有集成的,但是主题作者的网站是有的!!!然后我就找了一些自己来操作,让网站支持在文本小工具中显示最热文章,方便读者阅读,也可以通过用wp-postviews插件来实现显示指定天数的最热文章,我这里使用代码来实现

文本小工具是WordPress后台小工具中一个非常实用的边栏工具,可以添加一些自定义的栏目,但原生的小工具是不能运行PHP代码的,我们是通过在后台小工具中给边栏添加文本小工具实现的,所以首先需要让你的文本小工具支持PHP代码运行

将下面的代码添加到你主题的functions.php文件中:

代码语言:javascript
复制
add_filter('widget_text', 'php_text', 99);
function php_text($text) {
    if (strpos($text, '<' . '?') !== false) {
        ob_start();
        eval('?' . '>' . $text);
        $text = ob_get_contents();
        ob_end_clean();
    }
    return $text;
}

所谓的最热文章就是指某段时间内评论最多的文章,也就是关注最多的文章

同样把下面这些代码添加到你主题的functions.php文件中

代码语言:javascript
复制
function most_comm_posts($days=7, $nums=10) { //$days参数限制时间值,单位为‘天’,默认是7天;$nums是要显示文章数量
    global $wpdb;
    $today = date("Y-m-d H:i:s"); //获取今天日期时间
    $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  //Today - $days
    $result = $wpdb->get_results("SELECT comment_count, ID, post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' ORDER BY comment_count DESC LIMIT 0 , $nums");
    $output = '';
    if(empty($result)) {
        $output = '<li>None data.</li>';
    } else {
        foreach ($result as $topten) {
            $postid = $topten->ID;
            $title = $topten->post_title;
            $commentcount = $topten->comment_count;
            if ($commentcount != 0) {
                $output .= '<li><a href="'.get_permalink($postid).'" title="'.$title.'">'.$title.'</a> ('.$commentcount.')</li>';
            }
        }
    }
    echo $output;
}

使用$wpdb对象来创建一个自定义的SQL查询,创建3个PHP变量:第一个是今天的日期,第二个是今天到X天之前的天数,这个我们作为形参,最后一个是今天的日期减去X天

然后进行调用,在后台小工具中给你的边栏添加文本小工具,命名为最热文章,把下面的代码复制进去,就OK了

代码语言:javascript
复制
<ul>
   <?php if(function_exists('most_comm_posts')) most_comm_posts(30, 7); ?>
</ul>

函数的参数1是按天计算的,30就是30天,参数2是文章显示数量,7就是显示7篇,自己根据所需设置

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档