web-dev-qa-db-ja.com

Add_rewrite_rule()を使用してフロントページにリダクションする

フロントページに静的ページを使用しています。カスタムテンプレートです。私のカスタムテンプレートでは、WP_Query()を使って投稿のリストを表示しています。私は私の投稿で使用する "タイプ"と呼ばれるカスタム分類法もあります。

私はadd_rewrite_rule()を使用して http://example.com/types/example を私の静的フロントページにリダイレクトします。私の書き換えは次のようになります。

add_rewrite_rule('^types/([^/]*)/?', 'index.php?page_id=24&type=$matches[1]', 'top'); 

書き換えは「うまくいきます」が、 http://example.com にリダイレクトします。 wordpressで静的フロントページを無効にした場合、リダイレクトは完全に機能します。

Add_rewrite_rule()をwordpressの静的フロントページで使用することは可能ですか?

1
Ryan M

このスレッドで解決策を見つけました: デフォルトのホームが静的ページに書き換えられないようにする方法

フロントページの正規リダイレクトを無効にするだけです。

function disable_canonical_redirect_for_front_page( $redirect ) {
    if ( is_page() && $front_page = get_option( 'page_on_front' ) ) {
        if ( is_page( $front_page ) )
            $redirect = false;
    }

    return $redirect;
}
add_filter( 'redirect_canonical', 'disable_canonical_redirect_for_front_page' );
1
user1383029