天兴工作室

主题演示站

zblog新版GetList函数的参数说明和使用方法

zblog1.7版本优化了原来的”GetList函数“,我们先回顾下老版本函数:

1.jpg

老版的”GetList函数“有7个参数,主要问题在于附加选项太弱,基本上能筛选指定条件的数据很少。所以之前开发者用的比较多的都是”$zbp->GetArticleList“函数。

而最新的”GetList函数“就补足了缺少调用指定逻辑的不足,再来看下新版的”GetList函数“:

QQ截图20210706175539.jpg

从上面这些参数我们可以看到,新版的”GetList函数“从数量到指定分类指定作者指定日期指定tag指定搜索词都可以轻松实现,重要是最下面可以自定义where和order,这两个也是数组,通过这些参数就可以更精细的获得指定逻辑的数据了。

附上新老两版函数的官方文档地址:

旧版:https://wiki.zblogcn.com/doku.php?id=zblogphp:development:functions:getlist

新版:https://docs.zblogcn.com/php/#/books/dev-functions?id=getlist-%e5%87%bd%e6%95%b0

zblog判断插件是否安装或者启用的代码介绍

最近在写zblog主题的时候需要用到判断一个依赖的zblog插件是否启用,zblog本身就有内置的判断函数,本文就来介绍下怎么来判断一个zblog插件是否安装或者启用。 

一个插件有三种状态:未安装;已安装未启用;已安装已启用。

zblog判断插件是否安装的内置函数是:

$zbp->LoadApp('plugin', '插件ID')->isloaded

函数返回值为布尔值,可以直接用if判断,已经安装返回true值,未安装就返回false值。


还有一种判断插件是否安装的方法是通过获取插件内的文件路径,然后通过php自带的“file_exists”函数判断文件是否存在就行。代码如下:

$path = $zbp->path .'zb_users/plugin/插件ID/文件名.php';  //获取文件路径
if(file_exists($path){
    echo '已安装';
}else{
    echo '没有安装';
}

推荐使用第一种zblog内置函数的方法判断,不建议使用第二种判断文件路径方式。


然后就是判断插件安装后是否启用,这个zblog也有内置的函数:

$zbp->CheckPlugin('插件id')

同样的这个函数的返回值为布尔值,可以直接用if判断,插件已经启用返回true值,未启用就返回false值。


PS:zblog的主题也可以用同样的方法来判断,函数里面的“plugin”改成“theme”即可,但是一般是主题依赖插件,很少有插件依赖主题的。所以这个用的少。

zblog当天发布的文章标题显示成红色的几种解决办法

当天发布的文章标题或者日期变红色这些小需求很受客户的喜欢,都说这个可以提升用户体验。虽然我也没能理解提升了啥,但是存在即合理,本文来分享下两种可以实现这个需求的方法。

第一种:小白都会写的第一个函数

打开你正在使用的主题目录里面的“include.php”文件,在一个你认为合适的地方插入下面的函数:

function TX_Tagging_red($as){
   $time1 = strtotime(date('y-m-d')); //获取当前时间并转换为时间戳
   $time2 = strtotime($as->Time('y-m-d')); //获取文章发布时间并转换为时间戳
   $isnew = false; 
   if (ceil(($time1 - $time2) / 86400) < 1) { 
     $isnew = true;
   }
   return $isnew;
}

详细解释下这个函数:

先获取当前时间,再获取文章发布时间。拿当前时间减去文章发布时间,除以86400秒也就是一整天,再把得出的数字向上舍入得出一个整数,最后判断这个整数是否小于1。如果小于1函数输出布尔值的“真”,反之输出布尔值的“假”。

函数写好了就可以去主题文件里面使用了,找到并打开你想显示当天发布文章标红的地方,例如“post-multi.php”文件,找到文章标题调用代码“{$article.Title}”,把它改成下面这样:

<span{if TX_Tagging_red($article)} style="color: red"{/if}>{$article.Title}</span>

保存文件再去后台首页清空下缓存,就能看到效果了。

第二种:更简单更粗糙的对比

这个方法简单粗暴有疗效,一样的以“post-multi.php”文件为例,找到文章标题调用代码“{$article.Title}”,把它改成下面这样:

<span{if $article.PostTime > strtotime(date("Y-m-d"))} style="color: red"{/if}>{$article.Title}</span>

代码解释:

获取文章发布时间戳,获取当前时间转换为时间戳,获取的当前时间只有年月日,默认时分秒全部是0,所以只要是当天发布的文章的时间戳都会比这个大,因此一个简单的对比就能对比出来。

zblogphp挂接口往文章正文插入指定内容

如果你想批量在每篇文章正文的前面或者后面插入指定内容的话,可以按照本文教程操作。

ps:需要有一定的动手能力,另外进行前请务必把网站数据备份到本地以免发生意外。


第一:打开你所使用的主题或者插件里面的include.php文件,在“ActivePlugin”函数里面挂上这个接口:

Add_Filter_Plugin('Filter_Plugin_ViewPost_Template', '应用ID_Main');

第二:写一个自己的函数,如下:

function 应用ID_Main(&$template) {
    global $zbp;
    $article = $template->GetTags('article');
    $article->Content = '这里就是插入到每篇文章正文前面的内容'. $article->Content . '这里是插入到每篇文章正文后面的内容';
}

保存文件后,打开后台首页清空下缓存。然后打开一篇文章即可看到效果了。

<< 1 >>
«    2025年5月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.4

天兴工作室主题演示站点,如遇到问题请联系我们的在线qq:207649916咨询