J'essaie de comprendre un comportement wordpress. Lorsque j'ajoute une balise dans le panneau d'administration, mysql effectue une séquence de requêtes. Essentiellement:
mettre à jour wp_terms
mettre à jour wp_term_taxonomy
et
udate wp_options
avec une requête de ce type
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`)
Qui peut m'expliquer le sens de cette chaîne
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;}}
et pourquoi il y a une telle chose au-delà de wp_term et de la mise à jour de wp_term_taxonomy?
Merci
La seule partie vraiment intéressante (etvery important) de la 3ème requête est la suivante:
'project_location_children', 'a:7:{i:22;a:1:{i:0;i:23;}...etc...}}'
Le code a:n:{i:n; etc }
est un sérialisé PHP array .
WordPress - pour une raison historique - garde la trace des enfants de terme dans une entrée d’option par terme de taxonomie. Ce qui est pénible, c’est que beaucoup de gens ne le savent pas et n’oublient pas cela. Et si vous oubliez cela, la seule chance de remarquer ce problème est de consulter la liste des termes de taxonomie dans l'interface utilisateur d'administration. Là, vous verrez des relations parent/enfant manquantes - si vous regardez de près.
Règle de base:
Lors de l'importation manuelle de données existantes ou tierces dans WordPress et lors de leur correspondance avec des taxonomies, n'oubliez paspour définir et/ou mettre à jour cette entrée d'option!
Sinon, le ciel vous tombera sur la tête.