首页>建站相关>Typecho自动更新指定文章内容的尝试

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_try_to_update_post_by_cid_p1

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_try_to_update_post_by_cid_p2

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

试验结果

typecho_try_to_update_post_by_cid_p3

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

标签: typecho

移动端可扫我直达哦~

推荐阅读

typecho 2025-04-29

typecho让后台设置的代码更为易读

利用deepseek写一个简单的后台控件类,来简化一下后台的书写,利用这个类,我们可以把参数以数组的形式组装在一起,由类来轮询读取并生成控件。一个简单的后台实现类if (!class_exists('Aug_Config')) { ...

建站相关 typecho

typecho 2025-04-20

关于typecho主题的目录结构

wordpress的极简主题需要有两个文件,分别是index.php以及style.css,而在typecho中,因为主题的一些配置信息默认被放在了index.php而不是style.css文件中,所以直接往主题包里仍一个index....

建站相关 typecho

typecho 2025-04-20

从零开始做一个 Typecho 主题系列

Typecho是一款轻量级、高效的开源博客程序,由国内开发者团队开发维护。它采用PHP语言编写,支持MySQL、SQLite等多种数据库,安装包体积仅有500KB左右,运行时内存占用极低,却能提供出色的性能表现。这款博客程序最大的特点...

建站相关 typecho

typecho 2025-04-18

Typecho_Db 类以及各方法基础用例

Typecho_Db 是 Typecho 博客系统的数据库操作核心类,提供了数据库连接、查询构建和执行等功能。Typecho_Db 提供了简洁高效的数据库操作接口,是Typecho插件和主题开发中最常用的类之一。主要功能数据库连接管理...

建站相关 typecho

typecho 2025-04-16

typecho 1.2.1 给标签添加description说明文字

之前写过一篇为typecho标签添加说明字段的方法,对应的是typecho1.1版本,目前typecho的稳定版本是1.2.1, 因为服务器php版本较低,一直没有去尝试新版。这几天用小皮面板搭建了一个本地的php环境,终于是正经尝试...

建站相关 typecho

typecho 2025-04-11

Typecho博客系统中的config.inc.php文件

在 Typecho 博客系统中,config.inc.php 是一个核心配置文件,用于存储数据库连接信息和系统关键设置。它通常位于 Typecho 的安装根目录下,在安装过程中自动生成。Typecho 的安装包解压后并不包含这个文件,...

建站相关 typecho

typecho 2025-04-09

Typecho尝试获取主题的一些基础信息

在Typecho的主题一览里是利用了一个循环来遍历主题,遍历主题的时候可以通过activated参数来确定是否是当前主题,这样就可以利用官方提供的函数来获取主题信息了,缺点很明显,需要多使用一个循环,浪费资源。<?php \Wi...

建站相关 typecho

typecho 2025-04-02

typecho模板解析优先级

类似于wordpress ,Typecho的模板系统也遵循特定的优先级规则,当系统寻找模板文件时会按照以下顺序进行查找:模板文件查找优先级主题自定义模板 (最高优先级)usr/themes/[主题名]/[模板文件]例如:usr/the...

建站相关 typecho

typecho 2025-03-27

typecho如何实时更新被修改后的style.css文件

给新的站点“biib.top”加了个友情链接,顺便修改了一下主题的footer背景。但浏览器缓存了站点的css文件,修改后的效果并不实时生效。直接清除浏览器缓存是个简单粗暴的办法,问题在于这个效果也只是针对博主个人,用户可不会没事瞎清...

建站相关 typecho

typecho 2024-04-20

typecho根据标签的slug name信息判断是否输出免责声明

博主是从事机械行业的,工作过程中接触了很多二手老旧的设备,因为是二手设备,不缺胳膊少腿能正常运行已是难得,完善的说明书与售后服务想都不要想了。所以找设备的说明书成了一项附加的工作,总得让设备正常运行起来,偶尔设备有个小病小痛的,也不能...

建站相关 typecho

typecho 2023-11-02

Typecho开发文档-Widget设计文档

什么是WidgetWidget是组成Typecho的最基本元素,除了已经抽象出来的类库外,其它几乎所有的功能都会通过Widget来完成.在实践中我们发现,在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的,它会使系统灵活性...

建站相关 typecho