Typecho根据文章cid与字段名获取字段值

Typecho教程 2022-01-06 2613℃ 0 0

这个内容是泽泽射写过的,当时我评论了一个数据库查询次数少的办法,现在有空才把文章发出来。

最快想到的办法就是实例化一个Widget_Archive对象

function getCustom($cid, $key){
    $w = Typecho_Widget::widget('Widget_Archive@'.$cid,'pageSize=1&type=post', 'cid='.$cid);
    return $w->fields->$key;
}

这个办法有个缺点,就是数据库查询次数多,作为主题作者,当然最好选择减少数据库查询次数,所以直接构造SQL查询是最好的

function getCustom($cid, $key){
    $db = Typecho_Db::get();
    return $db->fetchObject($archive->db->select()->from('table.fields')->where('cid = ?', $cid)->where('table.fields.name = ?', $key))->str_value;
}
str_value是字符型
int_value是整形
float_value是浮点型

评论 (0)

Top