web-dev-qa-db-ja.com

データベース内のパーマリンク情報はどこに保存されていますか?

私はwp-adminページ>設定>パーマリンクでパーマリンク情報を編集できることがわかります。しかし、その情報は実際にはデータベースのどこに格納されているのでしょうか。

17
Alexander Bird

wp_optionsテーブルには、option_name = "permalink_structure"というレコードがあります。

しかし、URLリライトの真の究極の制御は WP_Rewrite API によって制御されます。これはその情報をrewrite_rules wordpressオプションに保存/キャッシュします(wp_optionsテーブルにもあります)。

編集:

また、ページ/投稿を編集するときに、そのページ/投稿の「パーマリンク」を変更できます(タイトルを変更した場所の真下)。それがしているのは、単にpost_nameテーブルのそのページの/ postエントリの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は完全にすべての書き換えをスキップします。 。

13
Alexander Bird

実際の情報ページまたは投稿の 'slug'は、post_name列の下のwp_postsに格納されています。これは通常post_titleのスラグ化バージョンですが、ページごとに上書きすることができます。

完全なパーマリンクは、設定 - >パーマリンクで選択した設定に基づいて分解されますが、実際のスラッグはwp_postsのpost_nameにあります。

4
Dave Hilditch

パーマリンク情報はwp_optionsに格納されています。

テーブル名: - $ wpdb-> prefix'options '

そしてオプションテーブルで 'permalink_structure'のようなオプション名を検索してください。

テーブルのその行では、uはパーマリンク構造を見ることができます。

0
Arvind Pal