对于SQL命令不是很熟悉,想用EMLOG做一个文章类表调用,需要用到SQL命令代码,调用指定多个分类EMLOG文章列表,研究了好些时间没整明白,求人也不是个事,只好自己继续边看教程边测试,功夫不负有心人,最终给我整明白了,用这个SQL命令可以正确调用指定多个分类的EMLOG文章列表,分享给有需要的站长们,把以下代码复制到模板的脚本文件中,设置好需要调用的分类ID号,在前台模板里写入调用代码就可以实现你想要的效果了。
在模板文件module.php中加入如下代码
代码语言:javascript复制<?php //调用指定多个分类文章,1,2,3,4代表分类id
function sort_logs($log_num) {
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN (1,2,3,4) ORDER BY `date` DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']);?>"><?php echo $row['title'];?></a></li>
<?php } ?>
<?php } ?>
说明:IN后面括号中的就是要调用的分类ID号,请自行更改你需要调用的分类ID号,中间用英文状态下的逗号隔开,前台模板调用在需要输出地方放入代码<?php sort_logs(10);?>其中10为显示条数
以上方法每次都需要手动修改模板文件中的分类id和数量,下面跟大家说说后台控制id和数量的方法(ps:必须安装 模板设置 插件,否则无法使用以下方法)
1、在模板文件module.php中加入如下代码
代码语言:javascript复制<?php //调用指定多个分类文章
function sort_logs($log_num) {require('sheli.php');
$db = MySql::getInstance();
$sql = "SELECT gid,title,date,content,views FROM ".DB_PREFIX."blog WHERE type='blog' and hide='n' and sortid IN ($sortlog_id) ORDER BY `date` DESC LIMIT 0,$log_num";
$list = $db->query($sql);
while($row = $db->fetch_array($list)){ ?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a><?php echo gmdate('m-d', $row['date']); ?></li>
<?php } ?>
<?php } ?>
2、在模板文件夹中建立一个名为sheli.php的文件,代码如下
代码语言:javascript复制<?php
// @shuyong.net
if(!defined('EMLOG_ROOT')) {exit('error!');}
$sortlog_id = _g('sortlog_id');
?>
3、在模板文件options.php加入如下代码(ps:如没有此文件,请参考最后说明)
代码语言:javascript复制'sortlog_mun' => array(
'type' =>'text',
'name' =>'调用指定多个分类文章数量',
'description' =>'(选择blog模式就不必理会)',
'default' =>'10',
),
'sortlog_id' => array(
'type' =>'text',
'name' =>'调用指定多个分类文章id',
'description' =>'直接写分类id,多个用半角,隔开',
'default' =>'1,2,3,4',
),
最后在需要显示的地方调用代码<?php sort_logs(_g('sortlog_mun'));?>,如你的模板中没有options.php文件,请自行创建一下,代码如下
代码语言:javascript复制<?php
/*@support tpl_options*/
!defined('EMLOG_ROOT') && exit('access deined!');
$options = array(
//此处放3中代码
);
本代码在emlog5.3.1上测试正常,其他版本为做测试,如有疑问,请在下面留言给我。更多emlog教程