サポート » 使い方全般 » rewrite_rules_arrayとgenerate_rewrite_rules

  • 解決済 sonic65

    (@sonic65)


    独自のパーマリンクを作りたい場合、rewrite_rules_arrayアクションフィルターとgenerate_rewrite_rulesアクションフィルターのどちらかを使うと思います。
    どちらも同じようにパーマリンクのルールを追加できますが、単純にカスタムパーマリンクを追加する場合はどちらの方がより良いのか悩みます。

    何か指針などないでしょうか。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • CG

    (@du-bist-der-lenz)

    既存のプラグインを参考にするところからでしょうか

    あぁ、なるほど、そうですね。
    有名どこのソースをちょっと見てみます。

    こんにちは

    フックの説明(下記)を素直に受け取れば、ルールの追加であれば generate_rewrite_rules、ルールの書き換え(変更、削除、並べ替え)であれば rewrite_rules_array でしょうか。
    ただし、rewrite_rules_array で優先的にルールを追加するプラグインなどもあるようなので、実際には rewrite_rules_array でなければルールが適用されない場合もあるので注意する必要はあります。

    generate_rewrite_rules:
    すべての書き換えルールが作成された後にトリガーします。 書き換えオブジェクトは、参照として引数として渡されます。
    https://codex.wordpress.org/Plugin_API/Action_Reference/generate_rewrite_rules

    rewrite_rules_array:
    このフィルターフックは、書き換えルール配列内の任意のルールに使用できます。
    https://codex.wordpress.org/Plugin_API/Filter_Reference/rewrite_rules_array

    generate_rewrite_rules には、 WP_Rewrite のインスタンス自身 ($wp_rewrite) が渡され、rewrite_rules_array では、$wp_rewrite->rules が渡されます。

    generate_rewrite_rules の方が出来ることが多いので、 はじめは、 rewrite_rules_array を用いル方針で設計して、足りない場合は、generate_rewrite_rules を使うことを検討しますかね。

    https://github.com/WordPress/WordPress/blob/5.2.3/wp-includes/class-wp-rewrite.php#L1434-L1443

    @ishitaka さま。
    そうですね。codexの通りであればそのように使い分けができますね。
    プラグインとの兼ね合いも気をつけないとですね。
    ありがとうございます。

    @toro_unit さま
    おぉ!
    その指針いただきました。
    そうですね。基本rewite_rules_arrayである程度のことはできるのでそれを中心に。
    足りない部分はgenerate_rewrite_rulesで。

    みなさま、ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。