分类 Typecho 教程 下的文章

Typecho本身是不带友链功能的,基本上都靠着LINKs插件,下面说免插件实现链接功能

1、为主题设置添加链接内容输入框,在函数themeConfig()内合适位置添加以下内容

 $Links = new Typecho_Widget_Helper_Form_Element_Textarea('Links', NULL, NULL, _t('链接列表(注意:切换主题会被清空,注意备份!)'), _t('按照格式输入链接信息,格式:<br><strong>链接名称(必须),链接地址(必须),链接描述,链接分类</strong><br>不同信息之间用英文逗号“,”分隔,例如:<br><strong>OFFODD,http://www.offodd.com/,JIElive的博客 | 有点不同,Myself</strong><br>若中间有暂时不想填的信息,请留空,例如暂时不想填写链接描述:<br><strong>OFFODD,http://www.offodd.com/,,Myself</strong><br>多个链接换行即可,一行一个'));
    $form->addInput($Links);

- 阅读剩余部分 -

Typecho添加主题目录的教程好像不是很多,而且我找到的仅有的几个都是前台JS实现的,总感觉这样不如后台实现来的好。既然Typecho找不到现成的,只好“曲线救国”,由于实现文章目录的原理是通用的,所以就去WP里找了,那可是大把大把的。

function createCatalog($obj) {    //为文章标题添加锚点
    global $catalog;
    global $catalog_count;
    $catalog = array();
    $catalog_count = 0;
    $obj = preg_replace_callback('/<h([1-6])(.*?)>(.*?)<\/h\1>/i', function($obj) {
        global $catalog;
        global $catalog_count;
        $catalog_count ++;
        $catalog[] = array('text' => trim(strip_tags($obj[3])), 'depth' => $obj[1], 'count' => $catalog_count);
        return '<h'.$obj[1].$obj[2].'><a name="cl-'.$catalog_count.'"></a>'.$obj[3].'</h'.$obj[1].'>';
    }, $obj);
    return $obj;
}

function getCatalog() {    //输出文章目录容器
    global $catalog;
    $index = '';
    if ($catalog) {
        $index = '<ul>'."\n";
        $prev_depth = '';
        $to_depth = 0;
        foreach($catalog as $catalog_item) {
            $catalog_depth = $catalog_item['depth'];
            if ($prev_depth) {
                if ($catalog_depth == $prev_depth) {
                    $index .= '</li>'."\n";
                } elseif ($catalog_depth > $prev_depth) {
                    $to_depth++;
                    $index .= '<ul>'."\n";
                } else {
                    $to_depth2 = ($to_depth > ($prev_depth - $catalog_depth)) ? ($prev_depth - $catalog_depth) : $to_depth;
                    if ($to_depth2) {
                        for ($i=0; $i<$to_depth2; $i++) {
                            $index .= '</li>'."\n".'</ul>'."\n";
                            $to_depth--;
                        }
                    }
                    $index .= '</li>';
                }
            }
            $index .= '<li><a href="#cl-'.$catalog_item['count'].'">'.$catalog_item['text'].'</a>';
            $prev_depth = $catalog_item['depth'];
        }
        for ($i=0; $i<=$to_depth; $i++) {
            $index .= '</li>'."\n".'</ul>'."\n";
        }
    $index = '<div id="toc-container">'."\n".'<div id="toc">'."\n".'<strong>文章目录</strong>'."\n".$index.'</div>'."\n".'</div>'."\n";
    }
    echo $index;
}
function themeInit($archive) {
    if ($archive->is('single')) {
        $archive->content = createCatalog($archive->content);
    }
}

- 阅读剩余部分 -

Typecho博客系统换主机(或空间)的步骤很简单,和wordpress 博客系统的搬家方法一样,仅需要几步即可完成,首先利把Typecho 程序下载到本地,然后进入数据库通过phpmyadmin把数据库备份带本地。然后把网站程序上传的新的空间,建立一个数据库导入数据,修改config.inc.php的数据库信息为新的数据库信息。

- 阅读剩余部分 -

Typecho默认支持Markdown语法,但是Markdown的a标签默认是在当前页跳转链接,如果想要属于本站的链接不要打开新窗口,只有外链接才新窗口打开,且不要改变a标签的当前属性,只添加新窗口跳转这个属性,且不要漏网。

function themeInit($archive) {
    if ($archive->is('single')) {
        $archive->content = preg_replace('/<a\b([^>]+?)\bhref="((?!'.addcslashes($options->index, '/._-+=#?&').'|\#).*?)"([^>]*?)>/i', '<a\1href="\2"\3 target="_blank">', $archive->content);
    }
}

Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。Typecho就是使用的这种编辑器。

优点:

1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可

缺点:

1、需要记一些语法。
2、有些平台不支持Markdown编辑模式。



- 阅读剩余部分 -

热评文章即网站中被评论次数最多的文章,一般热评文章、热门文章和随机文章是网站常用的排行文章模块,那么typecho网站要如何在页面中显示评论最多的文章列表?很简单,代码已准备好,有需要的博主仅需要根据下面的说明添加即可。

1、在当前主题的functions.php文件中添加以下函数代码:

- 阅读剩余部分 -