如何重写插件的WordPress URL

时间:2012-10-18 作者:Atif

我正在尝试在这里构建一个带有自定义用户管理区域的Wordpress插件。我想做的是,当用户在页面末尾添加/编辑时,应该从我的插件打开一个页面。比如说

example.com/page-1/edit 应加载
example.com/wp-content/plugins/custom-user-admin-area/index.php?u=page-1

我试图利用WP\\U重写,但徒劳无功。

class MyPlugin {
    function create_rewrite_rules($rules) {
        global $wp_rewrite;
        $newRule = array(\'([A-Za-z0-9-].+)/edit/\' => \'wp-content/plugins/custom-user-admin-area/index.php?u=\' . $wp_rewrite->preg_index(1));
        $newRules = $newRule + $rules;
        return $newRules;
    }

    function flush_rewrite_rules() {
        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    }

}

$MyPluginCode = new MyPlugin();
add_filter(\'rewrite_rules_array\', array($MyPluginCode, \'create_rewrite_rules\'));
add_filter(\'init\', array($MyPluginCode, \'flush_rewrite_rules\'));

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

Create an endpoint. 在端点的回调函数中,在内部调用插件函数,这样整个WordPress环境就可用了,并且无论plugin URL

另外,确保不要在每次加载页面时刷新重写规则,use the (de)activation hook 为此。

结束

相关推荐

URLs of plugin resources?

我正在尝试将插件的脚本和css文件添加到管理标头中。是否有类似的功能get_bloginfo(\'url\') 我可以使用它来正确引用文件,而不必硬编码url?