web-dev-qa-db-ja.com

WordpressのURLをプラグインに書き換える方法

ここでカスタムユーザー管理領域を使ってWordpressプラグインを構築しようとしています。私がやりたいことは、ユーザーがページの最後に追加/編集したときに、プラグインからページが開くはずです。だから例えば

example.com/page-1/editをロードする必要があります
example.com/wp-content/plugins/custom-user-admin-area/index.php?u=page-1

私はWP_Rewriteを利用しようとしていますが無駄です。

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'));

エンドポイントの作成 。エンドポイントのコールバック関数では、プラグイン関数を内部的に呼び出すため、WordPress環境全体が利用可能ですandプラグインURL がどこにあっても同じドメイン。

さらに、すべてのページのロードで書き換えルールをフラッシュしないようにしてください。 (de)activation hook を使用してください。

5
fuxia