Joomla!,Wordpressでサイトを構築するためのヒント

Wordpressでパーマリンク設定を変更したら

公開日| 2009年12月24日 | コメントはまだありません。

以前に、「WordPressの固定ページとパーマリンク設定」という記事を書きました。

この記事では、単純にパーマリンクの設定を、静的なページのようにも設定できることを紹介しています。
本来、このパーマリンクは、変更しない方が良いことは明白です。
アドレスを変えることは、今までの非リンクを一時的にせよ、破棄することになります。(ちゃんと設定すれば、ページへはたどり着けますが、検索順位などへの影響は、一時的にせよ、免れないと思います。そのため、避けられるのであれば、やるべきではありません。)

しかし、どうしてもパーマリンクの設定を変更せざるを得ない場合、今回、ご紹介する「ParmaLink Redirect」は、少しでもデメリットを少なくする助けになると思います。このプラグインで、パーマリンクの変更前のアドレスを変更後へ自動的にリダイレクトしてくれます。

ダウンロード先:ParmaLink Redirect

早速、インストールしてみましょう。

インストールは、通常のプラグイン同様、[プラグイン]-[新規追加]-[アップロード]から、先のダウンロード先からダウンロードしたZIPファイルを指定して、インストールします。
インストール後、プラグインを有効にします。

早速、使ってみましょう。

使い方は、非常に簡単です。
まず、プラグインを有効にすると設定タブに以下のように[ParmaLink Redirect]のメニューが表示されます。
redirect_0

この[ParmaLink Redirect]をクリックすると設定画面が表示されます。
redirect_1

ここで、Old Permalink Structures:の欄に、変更前のパーマリンクの設定内容を設定します。
例)
/%category%/%post_id%.html

設定を終えたら、[UpdateOptions]で保存しればOKです。
簡単ですね。()

このプラグインは、良くできていますが、他のプラグインとの競合を起こしやすい面もあります。
その対処が一部でできていないようです。

たとえば、qTranslateなどの国際化用プラグインを導入していると無限にリダイレクトしようとして該当するページを表示できないこともあります。
この対処は、ylsy_permalink_redirect.phpの一部を修正してあげると良いです。

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
        if (!$permalink['path']) {
            $permalink['path'] = '/';
        }
        //	add
        $req_path = apply_filters( 'the_permalink',$req_path);
        $permalink['path'] = apply_filters( 'the_permalink',$permalink['path']);
 
        if(($nlen1=strlen($permalink['path'])) != ($nlen2=strlen($req_path))){
            if(abs($nlen1-$nlen2)==1){
                if($nlen1<$nlen2){
                    if(substr($req_path,$nlen2-1)=='/'){
                        $permalink['path'].='/';
                    }
                } else {
                    if(substr($permalink['path'],$nlen1-1)=='/'){
                        $permalink['path']=substr($permalink['path'],0,$nlen1-1);
                    }
                }
            }
        }
 
        if (($req_path != $permalink['path']) || $this->check_hostname()) {
            wp_redirect($new_uri, 301);
        }

133,134行目に追加されているようにフィルターをかければ、先の問題は、回避できると思います。
136-148行は、このクラスの’guess_permalink’で、URLの最後に’/’を付加することがあります。
この付加により、アドレスが異なり、リダイレクトしようとするのを防いでいます。






コメント

コメントをどうぞ








翻訳

最近の記事

カテゴリー

タグクラウド

execute remove フロントページ 投稿ページ トップページ install WIndows Note Convert META generator 日付 donwload file manage multibyte utf-8 unicode shiftjis euc console サイトマップ 問題 ParmaLink Redirect パーマリンク はみ出る pre テンプレート テーマ タグクラウド マルチランゲージ リダイレクト PHP(タグ) タグ table control HTML(タグ) コマンド 国際化(翻訳) SQLite(タグ) MySQL(タグ) qTranslate プラグイン(タグ) Wordpress(タグ)

リンク

このサイトは?

Joomla!,WordpressなどCMSを使ったサイト構築、サイト管理からソフトウェアの使用方法、開発環境までのヒントを記述します。

  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ