![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
WordPress 3.2.1でパーマリンクの設定を%postname%にして
固定ページのタイトルをURLに反映させているのですが、
固定ページのタイトルを数字のみにした場合に、URLの末尾に連番の-2がついてしまい、
URLがきちんと表示されません。
例)
http://○○○/01
↓
http://○○○/01-2
上記のように勝手に-2がついてしまうのですが、
タイトル名通りのURLにするにはどうしたらよいでしょうか?
※サーバーはsakuraを利用していますが、ローカル環境でも同様の問題が発生します
No.2ベストアンサー
- 回答日時:
返信が遅くなり申し訳ありません。
もう遅いかもしれませんが、一応回答しておきます。
前回の回答はあまり確認をしない状態で回答してしまいました。
確かにスラッグがかぶる以外にも、
連番が勝手についてしまうパターンが色々とあるようでした。
すみません。
バージョン 3.2.1 のコア部分のソースを読んでいったところ、
ユニークなスラッグ名を取得する用の関数を発見しました。
wp-includes/post.php の 2800行目にある wp_unique_post_slug です。
その中の 2831行目の中に
if ( $post_name_check || in_array( $slug, $feeds ) || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug ) || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) {
と書かれています。
この if にマッチする場合に末尾に連番が付与される仕組みです。
今回のパターンではその条件のうちの
preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug )
に引っかかります。
面倒なので詳細は省きますが、数字だけのスラッグはこれにマッチするため、
連番が付与されます。
いつのバージョンからからは分かりませんが、このようにしたのでしょう。
結論ですが、この部分を削除すれば数字だけのスラッグを登録することが出来ますが、
色々と弊害が起こる可能性があります。
(どのような弊害が起こるかは分かりません。起きないかもしれません。)
また、コアな部分を変更するため、
バージョンアップした際は再度編集する必要があります。
どうやらプラグインなどでは回避出来なそうなので、
こうするしかないのではないでしょうか?
個人的にはあまりおすすめはできない方法ですが、一応の解決策です。
ご返答頂きありがとうございます。
ソースまで調べていただいて申し訳ないくらいです。
wordpressは始めて間もないのでソースをいじって直すことは
出来ませんが、連番が付く根本の原因が分かり、
またそれがほぼ仕様のような形で付けられている事が分かったので、
納得はしております。
素直にバージョンアップで改善されるのを待つか、
改造する方法を見つけて対処しようと思います。
教えて頂きありがとうございます。
No.1
- 回答日時:
すでに「01」というタイトルの固定ページが存在している状態で、
「01」というタイトルの固定ページを追加しようとしているからではないでしょうか?
当然同じURLで異なる固定ページを表示させるわけにはいかないので、
勝手に連番を付与するのでしょう。
ちなみに「%postname%」で使用される文字はタイトルではなくスラッグと呼ばれるものです。
特に指定しない場合は自動的にタイトルと同じものがスラッグに登録されます。
固定ページの編集画面の表示オプションで表示/非表示の設定ができるので、
ご確認してみてはいかがでしょうか?
この回答への補足
ご回答ありがとうございます。
返答が遅れてすみません。
「01」という固定ページが無い状態を確認し、ページを作成するのですが末尾に「-2」の連番が付いてしまいます。
また、数字のみの場合に限っては、「123」「999」などといったどんな数字でも同じように連番が付いてしまいます。
自分なりに調べてみましたが、wordpressのバージョン2.9.2までは数字のみの名前にしても問題ないのですが、バージョン3.0からは末尾に「-2」がつくようになってしまっています。
現在はwordpressのバージョンを落とすことで一応問題は解決していますが、今後もそれで対応していくというわけにもいかないため、問題を根本的に解決できるコメントを頂ければ幸いです。
>ちなみに「%postname%」で使用される文字はタイトルではなくスラッグと呼ばれるものです。
仰る通りタイトルではなくスラッグです。失礼致しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- WordPress(ワードプレス) Wordpressの記事URLを自由に決めたい 3 2022/06/02 12:05
- WordPress(ワードプレス) WordPress ドメイン移転後のURL変更 2 2022/07/03 08:53
- WordPress(ワードプレス) ワードプレス。複数の投稿ページを、複数の固定ページに区別して、表示させる方法は 1 2023/03/04 19:54
- WordPress(ワードプレス) ワードプレスのパーマリンク設定について 1 2023/02/11 19:08
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Visual Basic(VBA) ActiveReportのサブレポート機能を利用したときに1ページ目の1サブレポート目が表示されない 1 2023/08/19 06:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムの複製(VB.net)
-
POSTを使わずに値を渡す方法
-
海外郵便 宛名国名のスペル教えて
-
【smarty】予約変数に可変変数
-
laravelを利用してコントロール...
-
[Smarty] 空の変数は0に反応す...
-
フォームへの前回入力値をクリ...
-
HTMLで前の画面に戻る時、入力...
-
フォームボタンを押すたびに数...
-
DBの値をチェックボックスに反...
-
PHPでファイルアップロード時に...
-
プルダウンとCSVの連動
-
phpで、フォームのラジオボタン...
-
セッションを使わずに遷移先画...
-
ファイル名を変更してアップロ...
-
$_SESSIONについて教えて下さい。
-
syntax error, unexpected '}' ...
-
検索時の選択内容を保持する方法
-
POSTやGETの変数をフォーム無し...
-
PHP ボタンが押されたら処理を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
laravelを利用してコントロール...
-
POSTを使わずに値を渡す方法
-
POSTの値を配列として受け取っ...
-
サーバ上でGETはできるがPOSTが...
-
大鏡「若き日の道長」の訳
-
pythonのhttp.serverでpostされ...
-
アコーディオンPHPが上手くいか...
-
プログラムの複製(VB.net)
-
【smarty】予約変数に可変変数
-
$_SERVER['REQUEST_METHOD']と"...
-
淡路島の洲本にレンタカーはあ...
-
昭和40年の現金書留での送金...
-
ストアドプロシージャーでルー...
-
郵便番号検索
-
jQuery Ajaxで送信先ドキュメン...
-
ブックマークレットで他ドメイ...
-
高高兴兴は高兴と何が違います...
-
ASPを出ぶ方法
-
海外郵便 宛名国名のスペル教えて
-
自作PHPブログでの記事を5件ず...
おすすめ情報