サポート » 使い方全般 » 特定のディレクトリの404ページを変えたい

  • 解決済 suzuki_macboy

    (@suzuki_macboy)


    通常テーマの404.phpでオリジナルの404ページが表示されますが、
    例えばドメイン直下に/example/というディレクトリがあったとして、
    そのディレクトリのページの404エラーのときだけ、また別の404のデザインで表示させたいです。

    404.phpの記述方法等を教えていただきたいです。
    宜しくお願い致します。

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

    (@du-bist-der-lenz)

    テンプレートをデザインしたら、ファイル名を404.phpで保存します。

    トピック投稿者 suzuki_macboy

    (@suzuki_macboy)

    CG様ご回答ありがとうございます。
    言葉足らずで、申し訳ありません。

    404.phpは既に自分でデザインしたものになっているのですが、
    特定の下層ディレクトリ(/example/)のみの404エラーページをまた違うデザイン(404-b.php)に実装できたらという事でした。

    404.phpに条件分岐の記述をして、
    404-a.php(通常使うデザイン)
    404-b.php(example用のデザイン)
    に振り分けしたいです。

    宜しくお願い致します。

    CG

    (@du-bist-der-lenz)

    /example/のサイトだけに適用する404ページということでしょう。
    /twenty-sixteen/ディレクトリの404ページ
    /twentyseventeen/ディレクトリの404ページ

    こんにちは

    "{$type}_template"というフィルターフックがあるので、それを使ったらいけると思います。

    テーマディレクトリ直下に、
    404-example.php
    という名前でテンプレートを作成します。

    functions.php の末尾に、以下を追加します。

    function my_custom_404_template( $template, $type, $templates ){
    	global $wp_query;
    	if( 0 === strpos( $wp_query->query['pagename'], 'example/' ) ){
    		$template = get_stylesheet_directory() . '/404-example.php';
    	}
    	return $template;
    }
    add_filter( "404_template", 'my_custom_404_template', 10, 3 );

    404 の時に、ディレクトリ部分が example だったら、404-example.php を表示します。
    pagename を使っていいのかどうか、ちょっと自信が無いですが、使ってみて問題無いようなら参考にしてみてください。

    こんにちは

    存在しないページのみの場合は、単純に下記のようにするのもいいかもです。

    404.php:

    <?php
    if ( strpos( home_url( $wp->request ), 'http://(サイトアドレス)/example/' ) !== false ) {
    	get_template_part( '404', 'a' );
    } else {
    	get_template_part( '404', 'b' );
    }
    トピック投稿者 suzuki_macboy

    (@suzuki_macboy)

    皆様ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「特定のディレクトリの404ページを変えたい」には新たに返信することはできません。