Ich habe gerade festgestellt, dass in wp-includes/post.php
( Quelle ) am Ende wp_insert_post()
sowohl die save_post
als auch die wp_insert_post
Aktionen nacheinander mit genau denselben Parametern aufgerufen werden:
3520 /**
3521 * Fires once a post has been saved.
3522 *
3523 * @since 1.5.0
3524 *
3525 * @param int $post_ID Post ID.
3526 * @param WP_Post $post Post object.
3527 * @param bool $update Whether this is an existing post being updated or not.
3528 */
3529 do_action( 'save_post', $post_ID, $post, $update );
3530
3531 /**
3532 * Fires once a post has been saved.
3533 *
3534 * @since 2.0.0
3535 *
3536 * @param int $post_ID Post ID.
3537 * @param WP_Post $post Post object.
3538 * @param bool $update Whether this is an existing post being updated or not.
3539 */
3540 do_action( 'wp_insert_post', $post_ID, $post, $update );
Es passiert nichts zwischen ihnen, daher scheint es keinen Unterschied zwischen der einen oder der anderen zu geben.
Die gleiche Redundanz wird etwas weiter unten in wp_publish_post()
( Quelle ) wiederholt , und die älteste verfolgte Version der Datei hat auch die gleichen zwei Aktionen (danke an scho für diesen Hinweis).
Vermisse ich etwas Warum sind beide da und wenn ich eine Aktion auswähle, gibt es einen Grund, eine über die andere zu wählen?
actions
wp-insert-post
Tim Malone
quelle
quelle
wp_insert_post
wurde später hinzugefügt, um Hook-Namen innerhalb von Funktionen erraten zu können?wp_publish_post()
. Und dort besteht die gleiche Redundanz.Antworten:
wp_insert_post
wurde in Changeset 2887 eingeführt und sollte den Fehler # 1681 beheben . Ich konntesave_post
die ursprüngliche Herkunft des Hakens nicht finden , aber sie wurde zuletzt im Änderungssatz 3291 zum Kern hinzugefügt , der sich auf Ticket Nr. 2063 bezieht . Offensichtlich existierte es in 1.5.2 (obwohl die Versionskontrolle diese Theorie nicht unterstützt ) und musste zur Rückkompatibilität wieder hinzugefügt werden.So offenbar ,
save_post
wurde in 1.5.0 hinzugefügt, dann irgendwie entfernt in dem 2.0 - Entwicklungszyklus, dannwp_insert_post
später wurde in dem 2.0 - Entwicklungszyklus hinzugefügt, und schließlich ,save_post
wurde hinzugefügt zurück noch später in dem 2,0 - Lebenszyklus , um nicht zu brechen zurück-compat.Und anstatt der veraltete Hook zu sein, den man von einem solchen Hook erwarten würde, wenn dies zutrifft, wurde er de facto zum Standard-Hook, den Entwickler verwenden.
quelle