99257e21.jpg
Typecho的Widget_Archive是个很方便实用的接口。
例如:

<?php $this->widget('Widget_Archive@index', 'pageSize=1&type=post', 'cid=1')->to($ji); ?>
标题:<?php $ji->title(); ?>
链接:<?php $ji->permalink(); ?>
描述:<?php $ji->description(); ?>

其中pageSize=1指读取一条记录,cid=1是条件,查询结果赋值给函数$ji。

如果想查询多条记录,可以这么写:

<?php 
$lunbo = $this->options->imghdp; //主题中的设置,内容为“1,2,3”
$hang = explode(",", $lunbo); 
$n=count($hang);
$html="";
for($i=0;$i<$n;$i++){
$this->widget('Widget_Archive@lunbo'.$i, 'pageSize=1&type=post', 'cid='.$hang[$i])->to($ji);
$html=$html.'<div class="card item list-item list-overlay-content m-0"><div class="media media-21x9"><a class="media-content" href="'.$ji->permalink.'" style="background-image:url('.$ji->fields->img.')" ><span class="overlay"></span></a></div><div class="list-content p-3 p-md-5 text-center"><div class="list-body"><a href="'.$ji->permalink.'" target="_blank" class="h4 text-white h-2x m-0">'.$ji->title.'</a> </div></div></div>';
}
echo $html;
?>

1,用for循环来实现查询单条记录变多条,需要注意的是Widget_Archive@后面参数可以随便取但不能在同一个页面中出现同样的,否则有可能会重复查询到同一条记录。
2,第一个例子$ji->title()和第二个例子$ji->title的区别在于()=echo

本文转载