zblog自定义路由插件(动态路由)

zblog自定义路由插件(动态路由)

include.php

<?php
// 注册插件
RegisterPlugin('datatool', 'ActivePlugin_datatool');

function ActivePlugin_datatool() {
    Add_Filter_Plugin('Filter_Plugin_Zbp_PreLoad', 'datatool_RegRoute');
}

// 插件启用时调用
function InstallPlugin_datatool() {
    global $zbp;
    // 插件安装时的初始化操作
}

// 插件关闭时调用
function UninstallPlugin_datatool() {
    global $zbp;
    // 插件卸载时的清理操作
}

// 注册自定义路由
function datatool_RegRoute() {
    global $zbp;
    // 定义路由规则
    $route = array(
        'posttype' => 1, // 文章类型,0表示文章,1表示页面
        'type' => 'rewrite', // 路由类型
        'name' => 'rewrite_datatool', // 路由名称
        'call' => 'datatool_HandleRoute', // 处理函数
        'urlrule' => '{%host%}datatool/{%param%}/', // 使用通配符表示动态值
        'args' => array(
            'param' => '[^\\/_]+' // 定义参数的正则匹配规则
        ),
        'verify_permalink' => false, // 是否验证永久链接
    );
    $zbp->RegRoute($route);
}

// 处理自定义路由
function datatool_HandleRoute($args) {
    global $zbp;
    // 获取动态值
    $param = $args['param'];
    
    // 处理获取到的动态值
    echo '动态值: ' . htmlspecialchars($param);
}