-
GAMEPOD.hu
WordPress tartalom kezelő rendszer (CMS) topik
Új hozzászólás Aktív témák
-
miqlas
őstag
válasz kevesbence #8708 üzenetére
Esetleg ez segít?
Értem, hogy a WordPress egy új bejegyzést kezdetben egy "Auto Draft" állapotban hoz létre, majd amikor publikálod, a tényleges bejegyzés létrejön egy új ID-vel. A trigger egy
AFTER UPDATE
eseményre van beállítva, de valószínűleg nem fut le, amikor az "Auto Draft" állapotú bejegyzés kerül frissítésre, mivel a kivonat üres és az ID még nem végleges.
Azt szeretnéd, hogy a trigger minden esetben lefusson, még az "Auto Draft" állapotú bejegyzéseknél is. Ehhez módosítanod kell a triggert.Íme egy javasolt módosítás:
DELIMITER // CREATE TRIGGER `after_post_published` AFTER INSERT ON `wp_posts` FOR EACH ROW BEGIN INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES (NULL, NEW.id, 'single_post_subtitle', NEW.post_excerpt); -- Ellenőrizd, hogy az új bejegyzés publikálva lett-e IF NEW.post_status = 'publish' THEN -- Most már az új bejegyzés ID-je ismert, így frissítheted a korábban beszúrt rekordokat UPDATE `wp_postmeta` SET `meta_value` = NEW.post_excerpt WHERE `post_id` = NEW.id AND `meta_key` = 'single_post_subtitle'; END IF; END; // DELIMITER ;
Ebben a módosított triggerekben először beszúrunk egy rekordot az
wp_postmeta
táblába, amikor az új bejegyzés létrejön. Ezután ellenőrizzük, hogy az új bejegyzés publikálva lett-e. Ha igen, akkor frissítjük a korábban beszúrt rekordot a tényleges bejegyzés ID-jével és a kivonattal.Ez a módosítás segíthet abban, hogy a trigger minden esetben lefusson, és a helyes adatokkal frissítse az új bejegyzést. Ne felejtsd el a triggert létrehozni a MySQL-ben az új kód alapján.
[ Szerkesztve ]
42
Új hozzászólás Aktív témák
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest