web-dev-qa-db-ja.com

デフォルトのホームが静的ページに書き換えられないようにする方法

デフォルトの動作を防ぐ方法を探しています(静的なページがサイトのホームページまたは 'frontpage'として設定されている場合(settings>reading>front page displays内))。

私はdomain.com/ページがここで指すようにしたいのですが、そうでなければdomain.com/homeに存在するhomeページを作成した場合、Wordpressは自動的にdomain.comにリダイレクトされるため、domain.com/homeにアクセスして滞在する方法はありません。

誰がどうやって/どこでこれをやるかの手がかりを持っていますか? php $_SERVER変数を調べて書き換え規則を変更しようとしましたが、そのような状況に確実に一致する規則が見つかりません。 (homeページがidのページには1つの規則がありますが、これを確実にターゲットにすることはできません(そして実際にはdomain.com/ - > domain.com/homeをルーティングすると思います)。

繰り返しになりますが(そしておそらくは明確にするために)、どのようにしてwordpressの 'frontpage'をドメインのルートで利用できるようにするのでしょうか(デフォルトで機能しているように)。

4
josh

リダイレクトは redirect_canonical() - のおかげです。フィルタを使って急いでそれを無効にし、フロントページで無効にすることができます。

function wpse_184163_disable_canonical_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', 'wpse_184163_disable_canonical_front_page' );

今、あなたはルートでフロントページにアクセスすることができますそれはスラッグ、リダイレクトなしで。

6
TheDeadMedic

私があなたを正しく理解したならば、あなたはあなたのホームページも表示するためにあなたのdomain.com/homeがちょうど必要ですか?これをあなたの/wp-contentなどと同じフォルダ内のhomeという名前のフォルダに作成するだけです。

それにindex.phpという名前を付けます

?php
    header("Location: http://domain.com");
    exit();
?>
0
Bysander