サポート » バグ報告と提案 » wordpress 5.4.1 からの障害について

  • 解決済 m0de

    (@m0de)


    Wordpress 5.4.1 に自動アップグレードが入りましたが、個別記事(single.php)が表示されなく
    なってしまいました。

    推測すると、日時をパーマリンクに使っていると発生している可能性があります。
    5.4迄の場合、「/%second%」まで入っているとアーカイブ判定されなかったのですが、今回から判定されてしまっている感じです。

    パッチノートをざっと覗いた限り記載が無かったのですが仕様でしょうか。
    (パーマリンクを「post_id」にてテストしたところ、「single.php」が通常通り表示されました。)

    ご教示頂けると幸いです。

    ブラウザ変更や、プラグインオフ、キャッシュクリア等は試しました。

5件の返信を表示中 - 16 - 20件目 (全20件中)
  • 早速、「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' );
    
    • この返信は3年、 11ヶ月前にkei344が編集しました。
    momizibafu

    (@elevengraffitgmailcom)

    私もこの現象にぶち当たって途方に暮れています。
    MT時代に同じ設定をしていてURL削るとアーカイブになり隠れ機能っぽくて好きだったのですが。。。

    とりあえずはバージョンダウンして表示するようになったのですけども、いずれパーマリンク設定を変えてリダイレクトするしかないですね。
    記事内の内部リンクの書き換え方法の目途がついたら変更しようと思います。

    コアに、「パーマリンク設定ページ」に説明を付ける提案をしてみました。

    Proposal: Permalink structure tags grouping Mandatory and Available

5件の返信を表示中 - 16 - 20件目 (全20件中)
  • トピック「wordpress 5.4.1 からの障害について」には新たに返信することはできません。