php - wordpress 插件开发 - 自定义URL的问题

 米米丫头2502860283 发布于 2022-11-19 12:38
  1. 描述你的问题

我参考json-api这个插件的写法,想要自己实现一些数据接口,但是在自定义路由的时候一直不起作用。(我想自定义一个类似 '/api3/controlName' 这样的url接口)

  1. 贴上相关代码

flush_rules();
}

function my_plugin_template_rewrite(){
    global $myPluginBase;
    if( isset( $_REQUEST[ $myPluginBase ] ) ){
        echo $_REQUEST[ $myPluginBase ];
        exit;
    }
}

function my_plugin_activation() {
    // Add the rewrite rule on activation
    global $wp_rewrite;
    add_filter('rewrite_rules_array', 'my_plugin_rewrites');
    $wp_rewrite->flush_rules();
}

function my_plugin_deactivation() {
    // Remove the rewrite rule on deactivation
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

function my_plugin_rewrites($wp_rules) {
    global $myPluginBase;
    if (empty($base)) {
        return $wp_rules;
    }
    $my_plugin_rules = array(
        "$myPluginBase\$" => "index.php?{$myPluginBase}=info",
        "$myPluginBase/(.+)\$" => "index.php?{$myPluginBase}=\$matches[1]"
    );
    return array_merge($my_plugin_rules, $wp_rules);
}

// Add initialization and activation hooks
add_action('init', 'my_plugin_init');
register_activation_hook( __FILE__, 'my_plugin_activation');
register_deactivation_hook( __FILE__, 'my_plugin_deactivation');

?>

template_redirect这个action应该是生效了,比如访问 /api3=hello 能正常返回 hello,但是如果尝试访问 /api3/hello 则总是返回首页。

1 个回答
  • 我的天哪,你的写的让我有点看不懂。
    不过既然你提到你访问 /api3=hello可以正常返回hello 。首先请问它是一个什么类型的地址?

    page?post?cat? 建议你先试试下面的代码

    // 注册一个链接
    add_action( 'init', 'api3_rewrites_init' );
    function api3_rewrites_init(){
        add_rewrite_rule(
            'api3/(.+)\$',
            'index.php?&api3=$matches[1]',
            'top' 
        );
    }

    你的代码,我有一行不太了解

    "$myPluginBase/(.+)\$" => "index.php?{$myPluginBase}=\$matches[1]"
    2022-11-19 14:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有