早速、「custom permalinks」を使ってみました。
確かに気軽にパーマリンクの変更ができる便利なプラグインですが、テーマとの相性が悪くて不具合が発生した場合に困った事態になることに気が付きました。
やむなくプラグインを削除すると、元の「年月日時」の設定に戻ってしまい、記事が表示されなくなってしまいます。いつまでもversion5.4のままにするわけにもいきません。
それでパーマリンクの設定の変更を行い「Post name」に変えたところ、全投稿のパーマリンクがPost-21889のように置き換わってしまい、404エラーが多発するようになりました。やむなく元のパーマリンク設定に戻しましたが、なぜかスラッシュの位置が変わってしまいました。
今バックアップデータからの復元作業が終わり一息付くことができるようになりました。
その後、パーマリンク設定変更の準備として、手動でスラッグを設定していましたが、180で力尽きました。
記事数が1000を超えると、一人手動でやるのは厳しいです。
ネットに解決方法が出ていたので、それを真似してやったところ、30分ほどで全ての作業が完了しました。
参考までに残しておきます。
プラグイン「Export All URLs」でID、タイトル、URLをCVSファイルで抽出
リダイレクト用のCVSファイルを編集
パーマリンク設定の変更 年月日時分秒→ID
プラグイン「Redirection」で、CVSファイルインポート、リダイレクトの設定
以上が30分ほどの作業で完了しました。
あと内部リンクの修正はプラグイン「Broken Link Checker」でエラー表示出たものから、少しずつ修正してゆくつもりです。
半年間のうちに内部リンクを修正し、プラグイン「Redirection」を停止削除したいです。
今回のパーマリンク設定の変更により、リダイレクトの処理で負荷が掛かり、表示スピードが遅くなりました。
WordPressが苦手でも、プラグインを使用すれば、それほど難しくありません。
みなさんどうも情報提供ありがとうございました。
こんばんは。
パーマリンク設定を変更した後、リダイレクトするようにしました。(当方環境ではとりあえず動いてはいます)
正規表現部分は元パーマリンクにあわせて処理してください。
(初投稿なのでコードの提示の仕方がこれであっているか不明、ガイド記事も見当たらなかった・・・)
/*
/%year%/%monthnum%-%day%_%hour%%minute%%second%.html
↑が404を返すようになったので、急遽↓に変更。
/%year%/%monthnum%-%day%_%hour%%minute%%second%_%post_id%.html
*/
function redirect_to_new_permalink() {
$target_str = $_SERVER[ 'REQUEST_URI' ];
if ( !is_single() && preg_match( '/\/(\d{4})\/(\d{2})-(\d{2})_(\d{2})(\d{2})(\d{2})/si', $target_str, $day_result ) ) {
$args =[ 'post_type' => 'post'
, 'posts_per_page' => 1
, 'post_status' => 'publish'
, 'no_found_rows' => true
, 'ignore_sticky_posts' => true
, 'suppress_filters' => true
, 'date_query' => [ [
'year' => $day_result[ 1 ]
, 'monthnum' => $day_result[ 2 ]
, 'day' => $day_result[ 3 ]
, 'hour' => $day_result[ 4 ]
, 'minute' => $day_result[ 5 ]
, 'second' => $day_result[ 6 ]
] ]
];
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
$url = '';
while ( $the_query->have_posts() ) { $the_query->the_post();
$url = get_permalink();
}
if ( !empty( $url ) ) {
wp_safe_redirect( $url, 301 );
exit;
}
wp_reset_postdata();
}
}
} // 多分動くと思う
add_action( 'template_redirect', 'redirect_to_new_permalink' );
私もこの現象にぶち当たって途方に暮れています。
MT時代に同じ設定をしていてURL削るとアーカイブになり隠れ機能っぽくて好きだったのですが。。。
とりあえずはバージョンダウンして表示するようになったのですけども、いずれパーマリンク設定を変えてリダイレクトするしかないですね。
記事内の内部リンクの書き換え方法の目途がついたら変更しようと思います。