- ステータス
- 解決済み
- 解決されたバージョン
- WPML 4.9
- トピックタグ
- Bug
問題の概要
WordPressの設定 > パーマリンクで、カスタムプロダクトベースを例えば「/catalogue/%post_id%/」に設定し、そのベースを翻訳すると、翻訳された商品でエラー404(Not found)が発生する場合があります。
回避策
/wp-content/plugins/wpml-string-translation/classes/slug-translation/new-match-finder/wpml-st-slug-new-match-finder.phpに移動します。
その中のfilter_slug_using_tag関数で、以下のコードの直後に、
private function filter_slug_using_tag( $slug ) {
次の新しいコードを追加します。
if ( preg_match( '#%post_id%#', $slug ) ) {
$slug = preg_replace( '#%post_id%#', '([0-9]+)', $slug );
}