typecho主题开发/二次开发常用代码功能整理备用-凯发网娱乐官网

微信扫一扫,分享到朋友圈

0

目前我们在使用的博客cms程序中,可能较多的网友会使用wordpress,毕竟提供的免费主题、插件以及文档是比较多的,主要是用户量确实比较多。其次国内的免费博客cms中,zblog和typecho是小众用户群,不能说不行,只能说用户量相对比较小。但是陌涛个人认为有用作个人博客日志的还是可以用的。

尤其是我们喜欢折腾程序的朋友在选择到免费主题之后可能需要对其进行二次开发,当然有些希望深入开发的朋友会去做一些特有的主题,自用或者分享。陌涛有些时候也需要用到客户中的网站进行二次开发功能或者仿站主题会有用到typecho,这里我也顺手根据网上网友提供的一些代码整合进行整理。

这里的代码可能后续也会补充,是我们常用到和二次开发需要用到的一些代码功能。部分代码确实是使用的转载或者不知道出处的,这里感谢提供的网友。

1、文章缩略图调用

/** 输出文章缩略图 */ 
function showthumbnail($widget)
{ 
    // 当文章无图片时的默认缩略图
    $rand = rand(1,5); // 随机 1-5 张缩略图
    $random = $widget->widget('widget_options')->themeurl . '/img/sj/' . $rand . '.jpg'; // 随机缩略图路径
   // $random = $widget->widget('widget_options')->themeurl . '/img/mr.jpg'; // 若只想要一张默认缩略图请删除本行开头的"//"
    $attach = $widget->attachments(1)->attachment;
    $pattern = '/\]*>/i'; 
    
if (preg_match_all($pattern, $widget->content, $thumburl)) {
         echo $thumburl[1][0];
    } else     if ($attach->isimage) {
      echo $attach->url; 
    } else {
        echo $random;
    }
}

这里我们先默认1-5个默认图片,在文章没有图片的时候我们可以默认显示。


合适的主题位置调用。

2、获取文章第一张图作为缩略图

function showthumbnail($widget) {
$attach = $widget->attachments(1)->attachment;
$pattern = '/\]*>/i';
if (preg_match_all($pattern, $widget->content, $thumburl)) {
echo $thumburl[1][0];
} else
if ($attach->isimage) {
echo $attach->url;
} else {
echo $random;
} }

调用方式:


3、相关文章调用

related(5)->to($relatedposts); ?>
    
    next()): ?>

4、热门文章调用

function gethotcomments($limit = 10){
    $db = typecho_db::get();
    $result = $db->fetchall($db->select()->from('table.contents')
        ->where('status = ?','publish')
        ->where('type = ?', 'post')
        ->where('created <= unix_timestamp(now())', 'post') //添加这一句避免未达到时间的文章提前曝光
        ->limit($limit)
        ->order('commentsnum', typecho_db::sort_desc)
    );
    if($result){
        foreach($result as $val){            
            $val = typecho_widget::widget('widget_abstract_contents')->push($val);
            $post_title = htmlspecialchars($val['title']);
            $permalink = $val['permalink'];
            echo '';        
        }
    }
}

调用方式:


根据需要修改调用数量和样式。

5、侧栏热门标签调用

    widget('widget_metas_tag_cloud', array('sort' => 'count', 'ignorezerocount' => true, 'desc' => true, 'limit' => 20))->to($tags); ?> next()): ?>

6、文章统计代码实现

//统计调用实现 imotao.com
function get_post_view($archive)
{
    $cid    = $archive->cid;
    $db     = typecho_db::get();
    $prefix = $db->getprefix();
    if (!array_key_exists('views', $db->fetchrow($db->select()->from('table.contents')))) {
        $db->query('alter table `' . $prefix . 'contents` add `views` int(10) default 0;');
        echo 0;
        return;
    }
    $row = $db->fetchrow($db->select('views')->from('table.contents')->where('cid = ?', $cid));
    if ($archive->is('single')) {
       $db->query($db->update('table.contents')->rows(array('views' => (int) $row['views']   1))->where('cid = ?', $cid));
    }
    echo $row['views'];
}

调用:


需要的位置调用。

7、分页代码

pagenav('上一页', '下一页', '5', '……'); ?>//显示多个页码的
pagelink('下一页','next'); ?>
pagelink('上一页'); ?>//只显示上一页下一页

8、上一篇下一篇

上一篇: theprev('%s','没有了'); ?>
下一篇: thenext('%s','没有了'); ?>

9、搜索代码


10、最新文章调用

widget('widget_contents_post_recent')->to($post); ?>
next()): ?>

 

展开阅读全文
这个博主很懒,懒死了。
上一篇

typecho实现外部链接添加nofollow标签和新窗口打开

下一篇

自定义wordpress后台登录页面

你也可能喜欢

发表评论

this site uses akismet to reduce spam. .

插入图片