web-dev-qa-db-ja.com

wp_optionsテーブル値

ワードプレスの動作を理解しようとしています。管理者パネルにタグを追加すると、mysqlは一連のクエリを実行します。基本的に

  1. wp_termsを更新

  2. wp_term_taxonomyを更新して

  3. この種のクエリでwp_optionsを更新

    INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`) 
        VALUES (
            'project_location_children', 
            'a:7:{i:22;a:1:{i:0;i:23;}i:23;a:1:{i:0;i:24;}i:25;a:2:{i:0;i:26;i:1;i:32;}i:26;a:2:{i:0;i:27;i:1;i:31;}i:28;a:1:{i:0;i:29;}i:29;a:1:{i:0;i:30;}i:32;a:1:{i:0;i:33;}}', 
            'yes'
        ) 
        ON DUPLICATE KEY UPDATE 
            `option_name` = VALUES(`option_name`), 
            `option_value` = VALUES(`option_value`), 
            `autoload` = VALUES(`autoload`)
    

誰が私にこの文字列の意味を説明することができます

a:7:{i:22;a:1:{i:0;i:23;}i:23;a:1:{i:0;i:24;}i:25;a:2:{i:0;i:26;i:1;i:32;}i:26;a:2:{i:0;i:27;i:1;i:31;}i:28;a:1:{i:0;i:29;}i:29;a:1:{i:0;i:30;}i:32;a:1:{i:0;i:33;}}

そして、wp_termとwp_term_taxonomyの更新を超えたものがあるのはなぜですか?

ありがとう

3
emanuele

3番目のクエリの唯一の本当に興味深い(そして非常に重要な)部分はこれです:

'project_location_children', 'a:7:{i:22;a:1:{i:0;i:23;}...etc...}}'

a:n:{i:n; etc }のものは シリアル化されたPHP配列 です。

WordPressは - これまでの経緯から、分類期間ごとに1つのオプションエントリで用語の子供を追跡します。痛みを伴うことは、多くの人がこれを知らなかったり忘れたりしないということです。これを忘れた場合、実際にこの動作に気付く唯一の機会は、管理UIの分類用語リストを見たときです。親子関係が欠けているのが見えるでしょう - 近くを見れば。

経験則:

レガシーまたはサードパーティのデータを手動でWordPressにインポートし、それを分類法にマッピングするとき、このオプションエントリを設定または更新することを忘れないでください

そうでなければ空があなたの頭の上に落ちます。

2
kaiser