欢迎光临
我们一直在努力
扫描二维码在手机上浏览
WordPress相关

为DUX主题首页添加热门文章模块

在网络上浏览的时候,发现有的网站上用的DUX主题首页有个热门文章模块看着不错,就想着给网站也添加上,于是百度了一下,在蝈蝈要安静的网站上找到了,说是模仿XIU主题的,于是我就自己从XIU主题里提取需要的代码和文件为网站添加上了,具体效果如下图:

后台设置图:

修改步骤如下:

  1. 新建一个名为 hui_recent_posts_most.php 的文件,把下面这段代码保存到文件中,或者直接到XIU主题的models文件夹中直接提取出来,然后放入主题的models文件夹下即可,为什么是models文件夹呢?这是因为主题在 functions-theme.php 文件夹中添加了一个_moloader 的函数用于调取模板,这里为了方便我们直接使用该函数调取模板即可。
    <?php 
    /* 
     * recent post most
     * ====================================================
    */
    function hui_recent_posts_most() { 
        global $wpdb;
        // $days=400;
        $days=_hui('most_list_date');
        $limit=_hui('most_list_number');
        $output = '';
        
        if( !_hui('most_list_style') || _hui('most_list_style')=='comment' ){
    
            $today = date("Y-m-d H:i:s");
            $daysago = date( "Y-m-d H:i:s", strtotime($today) - ($days * 24 * 60 * 60) );  
            $result = $wpdb->get_results("SELECT comment_count, ID, post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_status='publish' AND post_type='post' ORDER BY comment_count DESC LIMIT 0 , $limit");
            if(empty($result)) {
                $output = '<li>'.__('暂无文章!', 'haoui').__('近期有评论的文章才会显示在这里,你也可以在主题设置中选择按阅读数排行。', 'haoui').'</li>';
            } else {
                $i = 1;
                foreach ($result as $topten) {
                    $postid = $topten->ID;
                    $title = $topten->post_title.get_the_subtitle();
                    $commentcount = $topten->comment_count;
                    if ($commentcount != 0) {
                        $output .= '<li><p class="text-muted"><span class="post-comments">'.__('评论', 'haoui').' ('.$commentcount.')</span></p><span class="label label-'.$i.'">'.$i.'</span><a href="'.get_permalink($postid).'" title="'.$title.'">'.$title.'</a></li>';
                        $i++;
                    }
                }
            }
    
        }else if( _hui('most_list_style')=='view' ){
    
            global $post;
            $limit_date = current_time('timestamp') - ($days*86400);
            $limit_date = date("Y-m-d H:i:s",$limit_date);
            $where = '';
            $mode = 'post';
    
            if(!empty($mode) && $mode != 'both') {
                $where = "post_type = '$mode'";
            } else {
                $where = '1=1';
            }
    
            $most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");
    
            if($most_viewed) {
                $i = 1;
                foreach ($most_viewed as $post) {
                    $title = get_the_title().get_the_subtitle();
                    $post_views = intval($post->views);
                    // $output .= '<li class="item-'.$i.'"><a target="_blank" href="'.get_permalink($postid).'">'._get_post_thumbnail(array()).'<h2>'.$post_title.'</h2><p>'.hui_get_post_date( get_the_time('Y-m-d H:i:s') ).'<span class="post-views">阅读('.$post_views.')</span></p></a></li>';
                    $output .= '<li><p class="text-muted"><span class="post-comments">'.__('阅读', 'haoui').' ('.$post_views.')</span></p><span class="label label-'.$i.'">'.$i.'</span><a href="'.get_permalink($post->ID).'" title="'.$title.'">'.$title.'</a></li>';
                    $i++;
                }
            } else {
                $output = '<li>'.__('暂无文章!', 'haoui').'</li>';
            }
    
        }else if( _hui('most_list_style')=='like' ){
    
            global $post;
            $limit_date = current_time('timestamp') - ($days*86400);
            $limit_date = date("Y-m-d H:i:s",$limit_date);
            $where = '';
            $mode = 'post';
    
            if(!empty($mode) && $mode != 'both') {
                $where = "post_type = '$mode'";
            } else {
                $where = '1=1';
            }
    
            $most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS `like` FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'like' AND post_password = '' ORDER  BY `like` DESC LIMIT $limit");
    
            if($most_viewed) {
                $i = 1;
                foreach ($most_viewed as $post) {
                    $title = get_the_title().get_the_subtitle();
                    $post_likes = intval($post->like);
                    // $output .= '<li class="item-'.$i.'"><a target="_blank" href="'.get_permalink($postid).'">'._get_post_thumbnail(array()).'<h2>'.$post_title.'</h2><p>'.hui_get_post_date( get_the_time('Y-m-d H:i:s') ).'<span class="post-views">阅读('.$post_views.')</span></p></a></li>';
                    $output .= '<li><span class="label label-'.$i.'">'.$i.'</span><a href="'.get_permalink($post->ID).'" title="'.$title.'">'.$title.'</a></li>';
                    $i++;
                }
            } else {
                $output = '<li>'.__('暂无文章!', 'haoui').'</li>';
            }
        }
    
        echo '<div class="most-comment-posts">
                <div class="title"><h3>'._hui('most_list_title').'</h3></div>
                <ul>'.$output.'</ul>
            </div>';
    }
  2. 修改 options.php 文件,在文件末尾 return $options; 之前添加以下代码:
    $options[] = array(
    'name' => __('热门排行功能', 'haoui'),
    'type' => 'heading');
    
    $options[] = array(
    'name' => __('热门排行', 'haoui'),
    'id' => 'most_list_s',
    'std' => true,
    'desc' => __('开启', 'haoui'),
    'type' => 'checkbox');
    
    $options[] = array(
    'name' => __('热门排行', 'haoui').$rrr.__('模式', 'haoui').'(v5.3*)',
    'id' => 'most_list_style',
    'std' => "comment",
    'type' => "radio",
    'options' => array(
    'comment' => __('按文章评论数', 'haoui'),
    'view' => __('按文章阅读数', 'haoui'),
    'like' => __('按文章点赞数', 'haoui')
    ));
    
    $options[] = array(
    'name' => __('热门排行', 'haoui').$rrr.__('标题', 'haoui'),
    'id' => 'most_list_title',
    'std' => __('一周热门排行', 'haoui'),
    'type' => 'text');
    
    $options[] = array(
    'name' => __('热门排行', 'haoui').$rrr.__('最近多少天内的文章', 'haoui'),
    'id' => 'most_list_date',
    'std' => 7,
    'class' => 'mini',
    'type' => 'text');
    
    $options[] = array(
    'name' => __('热门排行', 'haoui').$rrr.__('显示数量', 'haoui'),
    'id' => 'most_list_number',
    'std' => 5,
    'class' => 'mini',
    'type' => 'text');
  3. 修改 index.php 文件,添加下面的代码至你想要显示热门文章列表的位置即可。
    <!--热门文章排行--> 
    <?php 
    if( _hui('most_list_s') ){
    _moloader('hui_recent_posts_most');
    }
    ?>
  4. 添加以下样式到main.css
    隐藏内容,您需要满足以下条件方可查看
    登录后查看
THE END
历史上的今天
二月
12
    哇哦~~~,历史上的今天没发表过文章哦
标签
喜欢就支持一下吧!!!
点赞0打赏分享
版权声明
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自:灵阳星空 » 为DUX主题首页添加热门文章模块
本文标题:为DUX主题首页添加热门文章模块
本文日期:本文发表于 2020/02/12 15:27:14,最后更新于 2020/02/12 15:27:14,如内容失效,请反馈给我们,谢谢!
本文地址: https://www.jsksky.com/add-popular-article-module-for-wordpress-theme-dux-homepage.html

网络臭虫

已发布399篇文章
吃得苦中苦,方为人上人,不卧薪藏胆,哪能苦尽甘来?点击进入我的网站了解更多有关我的信息。

评论 抢沙发

评论前必须登录!

 


觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏