wp-adminページ>設定>パーマリンクでパーマリンク情報を編集できることがわかりました。ただし、その情報は実際にはデータベースのどこに保存されていますか?
wp-adminページ>設定>パーマリンクでパーマリンク情報を編集できることがわかりました。ただし、その情報は実際にはデータベースのどこに保存されていますか?
回答:
ではwp_options
テーブルどこのレコードがありますoption_name = "permalink_structure"
。
ただし、URL書き換えの真の究極の制御は、WP_Rewrite APIによって制御されます。WP_RewriteAPIは、rewrite_rules
wordpressオプション(wp_options
表にもあります)に情報を保存/キャッシュします。
編集:
また、ページ/投稿を編集するときに、そのページ/投稿の「パーマリンク」を変更できます(タイトルを変更する場所のすぐ下)。テーブルpost_name
でそのページ/投稿のエントリにフィールドを設定するだけですwp_posts
(別名、そのページの「スラッグ」を変更しています)。
すべてのページで、デフォルトの書き換えルールは次のように思われます。
[(.?.+?)/page/?([0-9]{1,})/?$] => index.php?pagename=$matches[1]&paged=$matches[2]
[(.?.+?)/comment-page-([0-9]{1,})/?$] => index.php?pagename=$matches[1]&cpage=$matches[2]
[(.?.+?)(/[0-9]+)?/?$] => index.php?pagename=$matches[1]&page=$matches[2]
このリストは、このphpコードを実行して取得しました。 echo nl2br('rules = '.print_r( $wp_rewrite->rules, true) . "\n");
パーマリンク構造は投稿にのみ適用されるため、ページのルーティングを編集する組み込みの方法はないようです。
編集:
私が発見しているよりランダムな情報:あなたのpermalink_structureが空の文字列(選択可能な「デフォルト」オプション)である場合、wordpressはすべての書き換えを完全にスキップします-なぜそうなのか本当に分かりません。
実際の情報-たとえば、ページまたは投稿の「スラッグ」は、post_name列の下のwp_postsに保存されます。これは通常post_titleのスラッグ版ですが、ページごとに上書きできます。
完全なパーマリンクは、設定->パーマリンクで選択した設定に基づいて分解されますが、実際のスラッグはwp_postsのpost_nameにあります。