「メニュー」から「ページ」を表示し、ページ内の記事を見ようとしましたが、最初のメニュー(デフォルトで言うところの「about」です)は内容を表示するのですが、
2番目以降追加したページは「該当する投稿は見つかりませんでした」と表示されます。
プロフィールに記載したサイトが当該サイトかと思ってみてみました。確かに「チラの写真集」などが閲覧できません。
で、これは、URL に日本語が入っているのが原因のようです。PC のブラウザーの場合、日本語を含む URL でも、うまいこと URL エンコードしてアクセスしてくれます。携帯電話の場合、URL エンコードしなかったり、したとしても Shift_JIS コードをもとにエンコードして URL が異なってしまうため、投稿なしになってしまいます。
「ページ一覧」は、WordPress コアの get_page_link()
を使っていますが、これが日本語 URL の場合に、URL エンコードした結果を返さないようです……。
とりあえず、該当ページの「投稿スラッグ」を英数字のみに変更してみてください。Ktai Style 1.31 で対応を検討してみますが、WordPress コアの問題のため、難航しそうです。
# get_page_link()
を調べてみると、根本的には wp-includes/post.php の get_page_uri()
を呼んでいます。
# なんと、これはわざわざ $uri = urldecode($page->post_name);
なんて処理をしています!!
# これはマルチバイト圏を無視した凶悪仕様ですね 😉 trac に報告や〜〜。→ 報告しました
>lilyfanさん
いつもありがとうございます。
さっそくためしてみます。
報告します。
パーマリンク構造を「日付と投稿名」にしてありましたが
デフォルトに戻したところ無事表示するようになりました。
お忙しいところありがとうございました。
Ktai Style での対応を検討しましたが、ちょっと困難なことが分かりました。WordPress コアの get_page_link()
以下のコードを Ktai Style に丸ごとコピーして不具合 (あえてこう書く) を除去したものに差し替えればいいですが、ちょっと大規模になってしまいます。
バージョン 1.31 では「制限事項」として「日本語名の固定ページにはアクセスできません」としまして、バージョン 1.40 以降で対応するか制限のままにするか検討します。正直なところ、ページスラッグに「日本語」を使うのはいまいちだと思っていますし、WordPress コアの不具合でもありますので、制限のままにする可能性が大です。
むしろ、PC でも「日本語の URL」になってしまうのは問題なので、別プラグインとして “Multibyte Page Slug Fix” とかいうのを作った方がよさそうです。そして、WP-Multibyte-Patch と合体する手もありますね。
> むしろ、PC でも「日本語の URL」になってしまうのは問題なので
オレもそう思います。
パーマリンクをカスタマイズできるみたいですが、それで対処できないでしょうかね?
スキル不足でやり方がわからないんですが(汗。
パーマリンク構造のカスタマイズは、「投稿」のみなのです。ページに対しては、/%pagename%/ という形に決め打ちです。デフォルトのパーマリンク (?p=NNN) という形だと、ページも ?page_id=NNN と呼び出すので日本語問題が回避できるわけです。
スラッグの意義を考えると、日本語のスラッグを使うのがまずいという考え方もあるかもしれません。でも、URL デコードするのはあかんやろーーと思うので、開発者に修正してもらえるよう交渉してみます。
>パーマリンク構造のカスタマイズは、「投稿」のみなのです。ページに対しては、/%pagename%/ という形に決め打ちです。
あれから/%page_id%/を試してみましたがやっぱりだめでしたね。。。(苦笑。