1

私は WordPress 用のプラグインを作成していますが、これは実際には別の注文モジュール (私が開発しているサイトや他のサイトの IFRAME に配置されます) になりますが、その管理者は WordPress に結び付けられています。管理部分はあまり手間をかけずに書きましたが、フロントエンドに問題があります。

まず、www.mysite.com/order/ からスクリプトにアクセスできるようにしたいと思います。WordPressコーデックスに従って、次のコードをメインのプラグイン ファイルに配置する必要があることがわかりました。

add_action('init', 'ta_flush_rewrite_rules');

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

add_action('generate_rewrite_rules', 'ta_add_rewrite_rules');

function ta_add_rewrite_rules( $wp_rewrite ) {
  $new_rules = array("order/(.+)" => "/wp-content/plugins/my-plugin/order.php");
  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

しかし、それは機能せず、.htaccess ハッキングで汚したくありません。

さらに、これが機能する場合でも、order.php ファイルはプラグインとは別のファイルです。これは、データベースやその他のヘルパー クラスや関数にアクセスできるようにするために、いくつかの WordPress ファイルを含める必要があることを意味します。これは質問 2 につながります: URL がプラグインの関数を呼び出して注文ページをレンダリングする方法はありますか?

4

2 に答える 2

3

WordPress プラグインで wp_rewrite をチェックアウトすると、必要な情報が見つかる場合があります。

于 2010-03-22T09:47:06.383 に答える
2

INIT でルールをフラッシュしないでください。すべてのページで多数の mysql クエリが作成され、カスタムの書き換えルール (カスタム投稿タイプを作成するものなど) を使用する他のプラグインに干渉するためです。

于 2010-10-22T15:15:46.730 に答える