Typecho自动更新指定文章内容的尝试

曾经在老的博客(wordpress)里尝试并且成功运行过的一个方案,定时去请求某个比如“每天60秒读懂世界”这样的api,获取到数据,然后根据数据更新某一篇博文的内容。因为有“轻微”的强迫症,所以习惯把不用的东西直接“rm -rf”删除,某天想删除掉html文件夹下的wordpress安装包,结果手一滑没输入后缀,刚打完wordpress就按下了回车,于是一整个站点的文件都被自己删除了。T_T

源自网络的代码

这是一段摘自网络的代码,阐述了新增一篇文章的逻辑,似乎是用于文章采集的。顺便提一嘴采集,ai自动生成也好,采集也好,无疑会打击原创者的积极性,问渠哪得清如许,为有源头活水来,原创内容才是互联网的活水。

phprequire_once 'simple_html_dom.php';
function get_content($url,$charset ='UTF-8'){    
    $html = file_get_html($url);
    $content = iconv($charset,'UTF-8',$html->find('div.content',0)->innertext);
    return $content;
}
function auto_publish($params){    
    $url ='';
    $title ='这是一篇测试文章';
    $content = get_content($url);
    $options = Typecho_Widget::widget('Widget_Options');
    $db = Typecho_Db::get();
    $fields = array(        
        'title'=>$title,        
        'slug'=> Typecho_Common::slugify($title),        
        'created'=> time(),        
        'modified'=> time(),        
        'text'=>$content,        
        'authorId'=>1,        
        'template'=>'',        
        'type'=>'post',        
        'status'=> isset($params['status'])&& in_array($params['status'],
        array('publish','waiting'))?$params['status']:'publish',
        'commentsNum'=>0,
        'categories'=>$options->plugin('AutoPublish')->category,
        'allowComment'=> isset($params['allowComment'])?$params['allowComment']: 1);
    $db->query($db->insert('table.contents')->rows($fields));
}

新建一篇测试用文章

博主只是想根据api定时更新某一篇文章的内容,所以用不到太多的参数,只需要根据文章的cid修改text内容就可以了,先新建一篇用于测试的文章,然后记录一下文章的cid,因为博客偶尔会有来访,所以把这篇没有实际意义的文章设置为了隐藏。

Typecho自动更新指定文章内容的尝试

typecho运行自定义php

记得在wordpress里,可以用这样的形式来运行php文件,比如在根目录下新建立一个php文件,然后用站点地址加新建文件名(含后缀php)的方式来直接运行,写文章的时候在typecho里测试了一下这种方式,只能够得到一个空白页面,同样,将文件放在主题文件夹内也是无法被运行的。

在typecho中,想测试一下某一个功能,可以通过自定义模板的方式来运行一些自定义的php语句,比如在主题文件夹中建立一个page_update.php的文件名,然后输入如下内容:

<?php
/**
*更新文章
*
* @package custom
*/
?>
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<!DOCTYPE HTML>
<html lang="zh-CN">
<?php
$db = Typecho_Db::get();
$update = $db->update('table.contents')->rows(array('text'=>'hello world!'))->where('cid=?',715);
echo $update;
$updateRows= $db->query($update);
?>

上述代码会更新cid为715的文章的内容,将其内容变更为'hello world!',cid715正是博主刚才新建的那一篇测试用文章,当前内容为空。

Typecho自动更新指定文章内容的尝试

保存文件后,新建一个独立页面,应用我们刚创建的“更新文章”这个模板,发布后记住这个独立页面的地址,访问一下就可以看到结果了。因为这个独立页面只用于更新数据,为了避免其他用户访问它,同样可以将它设置为隐藏。

试验结果

Typecho自动更新指定文章内容的尝试

测试文章内被成功写入了内容,测试过程很顺利,没有出现错误,相较于wordpress,typecho的资料虽然不多,但胜在针对性强,准确率高。

标签: typecho

移动端可扫我直达哦~

推荐阅读

thumbnail 2025-06-08

typecho前台ajax登录与错误处理

尝试了在主题前台做一个登录框,登陆的功能是实现了,有一个小小的不便,就是如果输错了密码,因为页面又跳回了首页,所以弹出式登录框又被隐藏了,登录成功与否不够明显,二次登录的场合操作也较繁琐,所以想实现前台以ajax的方式登录。实现aja...

建站相关 typecho

thumbnail 2025-06-08

聊聊html里的head部分

HTML文档的<head>部分是一个容器,用于包含文档的元数据(metadata)和链接到外部资源的信息,这些内容不会直接显示在网页上,但对网页的功能和表现至关重要。主要元素和功能1. 基础元素<title>:...

建站相关 typecho

thumbnail 2025-06-04

typecho前端实现站点语言的切换

前端修改的数据能及时反馈到后端,那当然需要一个前后端都可以无障碍读取的东西,所以最初是想要用localstorage,但发现php无法直接读取其值,所以就换成了cookie。前端通过js来设置参数值:document.cookie='...

建站相关 typecho

thumbnail 2025-06-02

typecho 主题中的模板与模块的概念

模板是 typecho 主题中一个重要的概念,我们说过typecho的极简主题可以只存在 index.php 这一个文件,但需要展现分类页的时候,typecho事实上会先去寻找名为 category.php 的分类页模板,文章页当然也...

建站相关 typecho

thumbnail 2025-06-02

typecho的几种常见的文章列表调用

处理好了header与面包屑,接下来就按照自己的需求自由发挥了,先放一个分类列表,再挑出一个喜欢的标签,自定义一个该标签下内容展示模块。Typecho 提供了多种文章循环方式,以下是常用的几种方法:标准文章循环<?php whi...

建站相关 typecho

thumbnail 2025-06-02

在typecho里实现面包屑导航

什么是面包屑导航面包屑导航是一种网站导航方式,通常在网站顶部显示,大多会放在站点header的下方,用于显示用户当前位置。 面包屑导航由导航元素构成,每个元素代表一个网站导航项,各个元素通常包含对应链接,供用户跳转。面包屑导航示例首页...

建站相关 typecho

thumbnail 2025-05-29

关于typecho中的路由知识

路由(Routing)是博客系统中将URL地址映射到具体处理逻辑的机制,它决定了当用户访问某个网址时,系统应该执行什么操作、显示什么内容。typecho站点一般都会开启伪静态,伪静态通过URL重写将"漂亮"的URL映射到实际的文件路径...

建站相关 typecho

thumbnail 2025-05-29

Typecho 模板中的翻译函数 _t 与 _e

在 Typecho 模板开发中,_t 和 _e 是用于国际化处理的函数,核心区别在于输出方式:"_t" 函数‌‌功能‌:获取翻译后的字符串但不直接输出,需结合 echo 使用。‌示例‌:<?php echo _t('欢迎语');...

建站相关 typecho

thumbnail 2025-05-26

typecho文章自定义字段的删除与修改

涉及数据库的操作,务必请提前做好备份!提前做好备份!!做好备份!!!小鸟数据的当前主题的缩略图字段命名为augPostThumb,这几天在尝试完善一下原有主题,下载了原站的数据库导入了测试站用于测试页面效果,测试主题的缩略图相关字段拟...

建站相关 typecho

thumbnail 2025-05-26

typecho的文章自定义字段的知识笔记

在typecho中,除了可以自定义设置项之外,我们也可以给文章自定义一些额外的字段,比如给文章编辑界面添加一个缩略图选项,或者增加一个keywords输入框,用来修改编辑当前内容页的关键词信息。// 主题设置 function th...

建站相关 typecho