如何制作WordPress側(cè)邊欄站點(diǎn)統(tǒng)計(jì)信息小工具

2020年10月22日16:05:24 發(fā)表評(píng)論 3,657 ℃

WordPress有些模板沒有站點(diǎn)統(tǒng)計(jì)信息小工具,比如統(tǒng)計(jì)網(wǎng)站瀏覽次數(shù)、文章總數(shù)等等信息。

如果要實(shí)現(xiàn)這個(gè)功能,1、換一些有此功能的模板。2、自己動(dòng)手添加一個(gè)。

如果本身對(duì)模板已經(jīng)二次修改,再去更換模板那就比較繁瑣了。

接下來阿湯博客就分享下方案二,自己動(dòng)手添加一個(gè)側(cè)邊欄站點(diǎn)統(tǒng)計(jì)信息小工具。

1、新建一個(gè)php文件,并將以下代碼添加到#php文件中。

<?php
// 站點(diǎn)統(tǒng)計(jì)小工具
//  阿湯博客 www.zhongjima.net
// 定義小工具的類 EfanBlogStat
class EfanBlogStat extends WP_Widget{
    function EfanBlogStat(){
        // 定義小工具的構(gòu)造函數(shù)
        // 注意classname,這里的widget_tongji要在style.css存在此樣式,也可以自己定義。
        $widget_ops = array('classname' => 'widget_tongji', 'description' => '顯示站點(diǎn)的統(tǒng)計(jì)信息');
        $this->WP_Widget(false, '站點(diǎn)統(tǒng)計(jì)', $widget_ops);
    }
    function form($instance){
        // 表單函數(shù),控制后臺(tái)顯示
        // $instance 為之前保存過的數(shù)據(jù)
        // 如果之前沒有數(shù)據(jù)的話,設(shè)置默認(rèn)量
        $instance = wp_parse_args(
            (array)$instance,
            array(
                'title' => '站點(diǎn)統(tǒng)計(jì)',
                'establish_time' => '2018-01-01'
            )
        );
        $title = htmlspecialchars($instance['title']);
        $establish_time = htmlspecialchars($instance['establish_time']);
        // 表格布局輸出表單
        $output = '<table>';
        $output .= '<tr><td>標(biāo)題</td><td>';
        $output .= '<input id="'.$this->get_field_id('title') .'" name="'.$this->get_field_name('title').'" type="text" value="'.$instance['title'].'" />';
        $output .= '</td></tr><tr><td>建站日期:</td><td>';
        $output .= '<input id="'.$this->get_field_id('establish_time') .'" name="'.$this->get_field_name('establish_time').'" type="text" value="'.$instance['establish_time'].'" />';
        $output .= '</td></tr></table>';
        echo $output;
    }
    function update($new_instance, $old_instance){
        // 更新數(shù)據(jù)的函數(shù)
        $instance = $old_instance;
        // 數(shù)據(jù)處理
        $instance['title'] = strip_tags(stripslashes($new_instance['title']));
        $instance['establish_time'] = strip_tags(stripslashes($new_instance['establish_time']));
        return $instance;
    }
    function widget($args, $instance){
        extract($args); //展開數(shù)組
        $title = apply_filters('widget_title',empty($instance['title']) ? '&nbsp;' : $instance['title']);
        $establish_time = empty($instance['establish_time']) ? '2018-01-01' : $instance['establish_time'];
        echo $before_widget;
        echo $before_title . $title . $after_title;
        echo '<ul>';
        // $this->efan_get_blogstat($establish_time, $instance);
        $this->efan_get_blogstat($establish_time);
        echo '</ul>';
        echo $after_widget;
    }
    function efan_get_blogstat($establish_time /*, $instance */){
        // 相關(guān)數(shù)據(jù)的獲取
        global $wpdb;
        $count_posts = wp_count_posts();
        $published_posts = $count_posts->publish;
        $comments_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");
        $time = floor((time()-strtotime($establish_time))/86400);
        $count_tags = wp_count_terms('post_tag');
        $count_pages = wp_count_posts('page');
        $page_posts = $count_pages->publish;
        $count_categories = wp_count_terms('category');
        $link = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");
        $last = $wpdb->get_results("SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND (post_status = 'publish' OR post_status = 'private')");
        $last = date('Y-n-j', strtotime($last[0]->MAX_m));
        $total_views = $wpdb->get_var("SELECT SUM(meta_value+0) FROM $wpdb->postmeta WHERE meta_key = 'views'");
        // 顯示數(shù)據(jù)
        $output = '<li>文章總數(shù):</li><li>';
        $output .= $published_posts;
        $output .= ' 篇</li>';
        $output .= '<li>留言數(shù)量:</li><li>';
        $output .= $comments_count;
        $output .= ' 條</li>';
        $output .= '<li>頁(yè)面總數(shù):</li><li>';
        $output .= $page_posts;
        $output .= ' 個(gè)</li>';
        $output .= '<li>分類總數(shù):</li><li>';
        $output .= $count_categories;
        $output .= ' 個(gè)</li>';
        $output .= '<li>標(biāo)簽總數(shù):</li><li>';
        $output .= $count_tags;
        $output .= ' 個(gè)</li>';
        $output .= '<li>友鏈總數(shù):</li><li>';
        $output .= $link;
        $output .= ' 個(gè)</li>';
        $output .= '<li>瀏覽總量:</li><li>';
        $output .= $total_views;
        $output .= ' 次</li>';
        $output .= '<li>建站日期:</li><li>';
        $output .= $establish_time;
        $output .= '</li>';
        $output .= '<li>運(yùn)行天數(shù):</li><li>';
        $output .= $time;
        $output .= ' 天</li>';
        $output .= '<li>最后更新:</li><li>';
        $output .= $last;
        $output .= '</li>';
        echo $output;
    }
}
function EfanBlogStat(){
    // 注冊(cè)小工具
    register_widget('EfanBlogStat');
}
add_action('widgets_init','EfanBlogStat');
?>

2、將#php上傳到/wp-content/themes/模板名稱/目錄下面,然后修改/wp-content/themes/模板名稱/functions.php文件,在此文件的末尾 “?>”之前加上如下代碼。

//添加站點(diǎn)統(tǒng)計(jì)小工具文件
include("#php");

3、自定義樣式,將下面的樣式添加到/wp-content/themes/模板名稱/style.css文件的末尾。

.widget_tongji ul{padding:5px 0 15px 20px;color:#00a67c;width: 94%}
.widget_tongji li{width:42%;background-color:#fff;padding:5px 8px;display:inline-block;border:solid 1px #dddd;}

注:樣式名稱widget_tongji要和#php里面的classname對(duì)應(yīng)的值一致,樣式可以根據(jù)自己的模板進(jìn)行修改。

4、登錄WordPress后臺(tái),外觀->小工具 找到 “站點(diǎn)統(tǒng)計(jì)”小工具,然后添加到想要的位置。

最終阿湯博客的顯示效果,如下圖:

如何制作WordPress側(cè)邊欄站點(diǎn)統(tǒng)計(jì)信息小工具

如果需要添加側(cè)邊欄微信二維碼聯(lián)系方式,可以參考文章:《如何在WordPress側(cè)邊欄添加微信二維碼聯(lián)系方式

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: