• 解決済 Wp-paper

    (@wp-paper)


    お世話になります。
    重宝しておりました固定ページのアドレスの最後を
    「/」または「.html」終わりに記事毎に選択できるプラグイン
    「Improved Page Permalinks」がWPのバージョンアップで
    うまく動作しなくなりました。

    プラグインの最終更新日からして対応は望めなさそうなので、
    プラグインを使わず下記ルールで自動付加できないかと、チャレンジしております。

    ●ルール
    子ページを持っていたら「/」終わり
    持っていなかったら「.html」終わり

    固定ページに「.html」を付けるまではたくさんの情報があり
    functions.phpへ

    add_action( 'init', 'mytheme_init' );
    if ( ! function_exists( 'mytheme_init' ) ) {
    function mytheme_init() {
    global $wp_rewrite;
    $wp_rewrite->use_trailing_slashes = false;
    $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html';
    // flush_rewrite_rules( false );
    }
    }

    と記述することで対応できました。

    この記述のURLをセットしている部分を
    子ページを持ってるか持ってないかで
    $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%/';

    $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html';
    に分岐させれば。。。
    で止まってしまいました。

    関数リファレンスにか書かれている、

    <?php
    global $post;
    if ( is_page() && $post->post_parent ) {
        // 子ページ
    } else {
        // 子ページではない
    }
    ?>

    を試してみましたが、すべてに「.html」が付いてしまいます。

    この処理での分岐に付きましてアドバイスの程、よろしくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • Ayustar

    (@ayustar)

    逆のアプローチになりますが、「.html」がついたURLにアクセスされたら「.html」が付かないURLにリダイレクトさせる、というのはいかがでしょうか。
    301リダイレクトにすることで、検索エンジンにインデックスされているURLもいずれ修正されます。

    <?php
    // .html ファイルのリダイレクト処理
    $uri = $_SERVER['REQUEST_URI'];
    if ( strpos( $uri, '.html' ) !== false ) {
    	wp_redirect( str_replace( '.html', '', $uri ), 301 );
    	exit;
    }

    あくまで「.html」を付けたい、ということでしたらすみません。

    Ayustar

    (@ayustar)

    投稿してから気付きましたが、この方法だと投稿記事にもパーマリンク設定で.htmlをつけていた場合はおかしくなりますね。
    その場合は投稿記事も .html 無しを正とする設定をすることになるので、こんな考え方もありますよ程度で捉えていただけましたら……。

    トピック投稿者 Wp-paper

    (@wp-paper)

    Ayustar 様

    アプローチ方法ありがとうございます。

    今回はスラッシュ終わりにしたい既存アドレスが少ないため、
    すべての固定ページを.html終わりにし、
    既存のスラッシュ終わりアドレスをhtaccessで301転送にしました。

    質問の解決には至ってませんが、
    こちらにてトピックス閉じさせていだきます。

    パーマリンクとは、基本的にはシステムが変わろうが変更されないのが理想的なあり方ではあります。

    今回のケースだと後から子ページが増えた場合にURLが変わってしまうので、そちらの方が無難な気はします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「固定ページのパーマリンク末尾の設定」には新たに返信することはできません。