Ú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