2017-10-21 7 views
0

ですので、Wordpressのウェブサイトに、使用するプラグインを使用して書き換えルールを追加しています。 $target = 'index.php?' . $this->post_type . '=' . $title; $mapping = $title . '/?$'; add_rewrite_rule ($mapping, $target, 'top'); これはうまく動作し、WordPressの書き換えルールがわかります。 しかし、URLに行くと、たとえばwww.foo.com/my-new-pageのように、私は301のリダイレクトをwww.foo.com/に戻しています。Wordpress add_rewriter_ruleの結果は301リダイレクト

私はこの301がトリガーされた場所を見つけようとしています。私は私のページを追加した後、ルールをフラッシュしたカスタムポストタイプが登録されていますが、何かが幸せではありません。 良いニュースは私が404を手に入れていないということです。たとえば、存在しないmy-new-page2に行くと、すぐに404が返ってきます。

私はJupiterベースのテーマを使用していますが、標準のWordpress 2017テーマを使用しています。まだ同じ問題。また、これに関連するプラグインはありません(私は思っています)。

誰に検索するかについての提案はありますか?

+0

として書き換えルールを登録することで結構です_「良いニュースは、私は404を取得しないで」_ - のみマッピング部ということを意味するかもしれませんしかし、ターゲットではありません。あなたは確実にpost typeを_parameter name_として渡して、これをindex.phpに渡す正しい方法ですか? https://codex.wordpress.org/WordPress_Query_Varsによると、_two_パラメータ、投稿タイプを 'post_type'、記事タイトルを' name'として渡す必要があると仮定します。 – CBroe

+0

良い質問。私は 'apptizer'というpost_typeを登録してから'([^ \ /] +)?\ /?auth-> \t index.php?apptizer = auth'のようなルールを登録する前にこのメソッドを使いました。これは私が '/ auth'に行くことを可能にし、apptizer post_type用の特定のテンプレートをロードして、ログイン用の単一ページアプリケーションをブートストラップします。これは魅力のように機能します。だから私は 'prospa_job' post_typeを登録し、' account-manager /?$ - > index.php?prospa_job = account-manager'のようにjob_urlsを登録して同じことを試していました。 URLにpost_typeを追加するとどうなるか見ていきます。 – Mattijs

+0

'index.php?post_type = prospa_job&name = account-manager'を試してみましたが、それでも301を起動します。' employees_category /([^ /] +)/ feed /(feed | rdf | rss | rss2 | atom)/?$ \t index.php?employees_category = $は[1]とfeed = $ matches [2] 'と一致しています。ちょうど301の理由を見つけなければならない。 – Mattijs

答えて

0

大丈夫、私は問題が何かを考え出しました。私は自分のコンストラクタ呼び出しでcustom_post型を登録しました。これは早かったです。

wp_loadedフックをコンストラクタに追加すると、適切なタイミングで実行され、301リダイレクトは発生しません。

add_action('wp_loaded', function() { 
    $this->register_post_types($this->post_type, true, $this->post_label); 

}); 

はそうちょうど確認するために、

$target = 'index.php?' . $this->post_type . '=' . $title; 
$mapping = '^' . $title . '/?$'; 
add_rewrite_rule ($mapping, $target, 'top'); 
関連する問題