Skip to content

标签地址自定义接口 ​

在 Z-BlogPHP 中读取标签对象的 Url 属性(包括模板中的 {$tag.Url})时会触发 Filter_Plugin_Tag_Url 接口,可以接管标签地址的生成逻辑,实现自定义标签链接等场景。

接口信息 ​

接口参数说明
Filter_Plugin_Tag_Url&$this干预 Tag 类 Url 方法的接口

完整案例 ​

下例把全站标签地址统一改为 tag/{ID}/ 形式,需配合伪静态规则使用:

php
<?php

RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");

function ActivePlugin_demoAPP()
{
    Add_Filter_Plugin('Filter_Plugin_Tag_Url', 'demoAPP_Tag_Url', PLUGIN_EXITSIGNAL_RETURN);
}

function demoAPP_Tag_Url(&$tag)
{
    global $zbp;

    return $zbp->host . 'tag/' . $tag->ID . '/';
}

注意事项 ​

  • 仅在读取 Url 属性时触发;Url 是只读虚拟属性,给 $tag->Url 赋值不会触发本接口(赋值会被系统忽略)。
  • 本例通过 PLUGIN_EXITSIGNAL_RETURN 信号无条件使用回调返回值,全站标签地址都会被接管;如只想干预部分标签,可在注册时不设信号,回调内按条件用 SetPluginSignal 动态生效。
  • tag/{ID}/ 只是输出的链接形式,必须配合伪静态规则把该形式映射到系统标签列表页,否则前台访问会 404。
  • 回调中不要再次读取当前标签的 Url 属性,避免递归死循环。