• ベストアンサー

wordpressでのパーマリンクの表示について

WordPress 3.2.1でパーマリンクの設定を%postname%にして 固定ページのタイトルをURLに反映させているのですが、 固定ページのタイトルを数字のみにした場合に、URLの末尾に連番の-2がついてしまい、 URLがきちんと表示されません。 例) http://○○○/01 ↓ http://○○○/01-2 上記のように勝手に-2がついてしまうのですが、 タイトル名通りのURLにするにはどうしたらよいでしょうか? ※サーバーはsakuraを利用していますが、ローカル環境でも同様の問題が発生します

  • PHP
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
回答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 ) に引っかかります。 面倒なので詳細は省きますが、数字だけのスラッグはこれにマッチするため、 連番が付与されます。 いつのバージョンからからは分かりませんが、このようにしたのでしょう。 結論ですが、この部分を削除すれば数字だけのスラッグを登録することが出来ますが、 色々と弊害が起こる可能性があります。 (どのような弊害が起こるかは分かりません。起きないかもしれません。) また、コアな部分を変更するため、 バージョンアップした際は再度編集する必要があります。 どうやらプラグインなどでは回避出来なそうなので、 こうするしかないのではないでしょうか? 個人的にはあまりおすすめはできない方法ですが、一応の解決策です。

client_user
質問者

お礼

ご返答頂きありがとうございます。 ソースまで調べていただいて申し訳ないくらいです。 wordpressは始めて間もないのでソースをいじって直すことは 出来ませんが、連番が付く根本の原因が分かり、 またそれがほぼ仕様のような形で付けられている事が分かったので、 納得はしております。 素直にバージョンアップで改善されるのを待つか、 改造する方法を見つけて対処しようと思います。 教えて頂きありがとうございます。

その他の回答 (1)

回答No.1

すでに「01」というタイトルの固定ページが存在している状態で、 「01」というタイトルの固定ページを追加しようとしているからではないでしょうか? 当然同じURLで異なる固定ページを表示させるわけにはいかないので、 勝手に連番を付与するのでしょう。 ちなみに「%postname%」で使用される文字はタイトルではなくスラッグと呼ばれるものです。 特に指定しない場合は自動的にタイトルと同じものがスラッグに登録されます。 固定ページの編集画面の表示オプションで表示/非表示の設定ができるので、 ご確認してみてはいかがでしょうか?

client_user
質問者

補足

ご回答ありがとうございます。 返答が遅れてすみません。 「01」という固定ページが無い状態を確認し、ページを作成するのですが末尾に「-2」の連番が付いてしまいます。 また、数字のみの場合に限っては、「123」「999」などといったどんな数字でも同じように連番が付いてしまいます。 自分なりに調べてみましたが、wordpressのバージョン2.9.2までは数字のみの名前にしても問題ないのですが、バージョン3.0からは末尾に「-2」がつくようになってしまっています。 現在はwordpressのバージョンを落とすことで一応問題は解決していますが、今後もそれで対応していくというわけにもいかないため、問題を根本的に解決できるコメントを頂ければ幸いです。 >ちなみに「%postname%」で使用される文字はタイトルではなくスラッグと呼ばれるものです。 仰る通りタイトルではなくスラッグです。失礼致しました。

関連するQ&A

  • WordPressについて

    WordPressに関する質問です。 サイトにプロフィールを掲載しようと思い、 プロフィールを固定ページとして投稿しました。 固定ページを投稿する際にパーマリンクが http://・・・・・/プロフィール となっていましたが 公開した固定ページのURLを見てみると http://・・・・・/2%5#36% というような数字の羅列したURLになっていました。 URL設定自体は数字ベースに設定しているので 数字ベースのURLになったと思うのですが、 パーマリンクとURLというのは違うものなのでしょうか。 wordpressを使い始めてまだ間もないので この類の詳しいことまで教えていただけるとうれしいです。 よろしくお願いします。 ※OKWaveより補足:「富士通FMV」についての質問です。

  • wordpress パーマリンク設定時にURLに表示される/index

    wordpress パーマリンク設定時にURLに表示される/index.phpを削除したいです。 wordpessをインストールしパーマリンクを、設定画面(wp-admin/options-permalink.php)の上から2番目「日付と投稿名」にしましたところ、デフォルトで /index.php/%year%/%monthnum%/%day%/%postname%/ となってしまいます。実際投稿しましても、 http://xxxx.com/indexphp/2010/・・・ と表示されてしまいます。このURLに含まれるindex.phpを削除したいです。 設定画面に戻り、5番目の「カスタム構造 」を選択し、先頭の「/index.php」削除し保存、さらに投稿をしましたところ、投稿ページのURLは希望通りになっているものの、ウェブサイトは表示されません。 サーバーはhtaccess、mod_rewriteは使える仕様になっております。同様の要件が必要となる別のスクリプトで動作確認しております。 どのようにすれば、解決できるでしょうか。 すみません、当方のphpスキルはあまり高くなく、wordpress歴三か月です。 よろしくおねがいします。

    • ベストアンサー
    • PHP
  • WordPressのパーマリンク機能の仕組み

    自作のPHPプログラムに、WordPressのパーマリンク機能(URLを置き換える機能)のようなものを実装したいのですが、どのような仕組みなのかわかりません。 詳しく解説しているページなどがあれば、情報をお願いします。

    • 締切済み
    • PHP
  • ワードプレスのパーマリンク設定についてですが、お願いします。

    ワードプレスのパーマリンク設定についてですが、お願いします。 /%year%%monthnum%%day%/%postname%/ 現在↑↑にしていますが、これだとURLにも記事タイトルが入っていまいます。 ■URL http://www.ドメイン/blog/20101016/記事タイトル ■タイトルタグ 記事タイトル│ブログ名 タイトルタグに入る分には良いのですが(むしろ入っていなければ駄目)、URLには入れたくありません。 そういったパーマリンク、ありますでしょうか。

  • WordPress固定ページが表示されません

    WordPressの勉強をしています。 uddyPressをいれてみたのですが、固定ページがブラウザに表示されません。 確かに作られてはいるのですが.... 検索してみると、「パーマリンク・スラッグ・URL」あたりが原因のようですが、解決できません。 皆様のお知恵を拝借したく、お願いいたします。

  • wordpressのパーマリンク設定について

    お世話になります。 現在wordpressにてサイト構築を行っており下記サイトを参考にし、 http://www.devolen.com/blog/wp_custum/change-single-template/ http://hoge.com/category/1/?type=gallery というURLを作成しました。 これをhttp://hoge.com/category/1/galleryをいうURLでアクセスできるようにするにはどうしたらいいのでしょうか? htaccessなどを変更してみましたが、一向に上手くいきません。 wordpress上でパーマリンク設定を行っているものを再度htaccessで書き換える… というのはやはり無理なのでしょうか。 本当に困っています。 どうかよろしくお願いいたします。

    • 締切済み
    • PHP
  • WordPressについて

    はじめまして。Sakuraのレンタルサーバを利用して、 WordPressをサーバにインストールしました。 目的は、ブログではなく、HPを作成することなのですが、 テーマの選択や固定ページの意味がわからず、 恥ずかしながら詳しい方に下記質問させてください。 1.WordPressはXAMPP上でも動きますか?(現在サーバにあります) 2.WordPressはMySQLは使えるのでしょうか? 3.WordPressをアップロードするのに適したFTPを教えてください。 4.その他、ご意見があればお願いします。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ローカルで制作したwordpressサイトのアップ

    BitNamiを使いローカルで制作したwordpressサイトをサーバへアップしたところ、ナビゲーションのリンク先がローカルに繋がっていました。 サーバはさくらインターネットで、Wordpressは3.1(日本語)です。 ローカルのデータベースをphpmyadminでエクスポートし、サーバのphpmyadminでインポート。 サーバのWordpressデータを削除して、ローカルのWordpressデータ(htdocs内のデータ全て)をアップ。 wp-config.phpのデータベースに関する設定をサーバのデータベースに合わせて変更してアップ。 以上の方法でしっかりアップできたと思っていたのですが、ナビゲーションから固定ページへのリンクがローカル環境へのリンクになっていました。 またCSSや画像など、テーマフォルダ内のファイルは全てローカルから読み込まれているようなのです。 カスタムリンクとしてURLを指定したリンクは大丈夫でした。(/wordpress/?page_id=2 のように相対パスで指定しています) 各ページの内容(テキストと画像)などはインポートされているようです。 根本的な間違いをしているような気がするのですが、どうしたらいいかわかりません。 どこに原因があるか教えていただけないでしょうか。 怪しそうな部分だけでもご指摘いただけると大変助かります。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • Wordpress pagesのみパーマリンク設定

    はじめまして。 Wordpressのパーマリンク設定での質問です。 posts(記事)は、デフォルトの http://www.example.com/?page_id=123 のままで pages(ページ)のみ http://www.example.com/about.htm と言う風にしたいと考えております。 どの様にすれば可能でしょうか? プラグインのCustom Permalinks を試しましたがうまくいきませんでした。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • WPのパーマリンクを普通のブログとかで実装したい

    <知りたいこと> ・ワードプレスのパーマリンクはどういう仕組みになっているのでしょうか? ・具体的には、エントリー投稿毎に、個別URLを設定すると、どういう風に「.htaccess」に伝わって、URLが生成されるか知りたいです ▽パーマリンクの使い方 - WordPress Codex 日本語版   http://wpdocs.sourceforge.jp/%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9 <最終的にやりたいこと> ・ワードプレスのパーマリンクを普通のブログとかで実装したい(エントリー投稿する際、個別URL、もしくは「/%postname%/」みたいにしたい) ※「.htaccess」「mod_rewrite」は使える環境です

    • ベストアンサー
    • PHP

専門家に質問してみよう