WordPress können Sie abfangen, wenn ein Beitrag - auch custom-Klasse - nicht beseitigt wird. . Es gibt zwei Haken Aktion die verwendet werden können: delete_post und deleted_post . In der ersten Analyse, sollte die erste verknüpft werden ein "going beseitigt werden" die Post, auch wenn es nicht zu sein scheinen, oder besser. Mit Blick auf den Code es ist klar, dass diese beiden praktisch genannt gleichzeitig Haken sind:
1 2 3 4 5 | ... , $postid ) ; do_action ('delete_post', $ postid); query ( $wpdb -> prepare ( "DELETE FROM $wpdb->posts WHERE ID = %d " , $postid ) ) ; $ WPDB -> query ($ wpdb -> prepare ("DELETE FROM $ wpdb-> posts WHERE ID =% d", $ postid)); , $postid ) ; do_action ('deleted_post', $ postid); ... |
Aber noch wichtiger ist, ist, dass einige Informationen im Zusammenhang mit der Post, wie Metadaten, Kommentare oder post-Art Anlage, bereits an diesem Punkt der Ausführung entfernt. Also, wenn wir Code wie diesen zu schreiben, wird es nicht funktionieren:
1 2 3 4 5 6 7 8 9 | , my_delete_post ) ; add_action ('delete_post', my_delete_post); ... $post_id ) { Funktion my_delete_post ($ post_id) { ; global $ wpdb; / / Wenn wir für unser Beitrag aussehen versuchen, weiß schon ihn nicht finden sprintf ( "SELECT ID FROM ` %s ` WHERE `post_parent` = %s AND `post_type` = 'attachment'" , $wpdb -> posts , $post_id ) ; $ Sql = sprintf ("SELECT id FROM`% s `WHERE` post_parent `=% s AND` post_type `= 'Attachment'", $ wpdb -> Beiträge, $ post_id); $wpdb -> get_var ( $sql ) ; $ AttachmentID = $ wpdb -> get_var ($ sql); / / Return null } |
Achtung, eine Anlage nicht gelöscht wird, wird sie ihre Verbindung mit der Post gelöscht.
) che svolge meglio la funzione. Ich habe entdeckt, ist jedoch, dass es eine before_delete_post (und auch ein after_delete_post ), die die Funktion ausführt besser. Dies liegt daran, wenn wir schreiben:
1 2 3 4 5 6 7 8 9 | , my_delete_post ) ; add_action ('before_delete_post', my_delete_post); ... $post_id ) { Funktion my_delete_post ($ post_id) { ; global $ wpdb; / / Wenn wir für unser Beitrag aussehen versuchen, weiß schon ihn nicht finden sprintf ( "SELECT ID FROM ` %s ` WHERE `post_parent` = %s AND `post_type` = 'attachment'" , $wpdb -> posts , $post_id ) ; $ Sql = sprintf ("SELECT id FROM`% s `WHERE` post_parent `=% s AND` post_type `= 'Attachment'", $ wpdb -> Beiträge, $ post_id); $wpdb -> get_var ( $sql ) ; $ AttachmentID = $ wpdb -> get_var ($ sql); / / Gib eine gültige ID - wenn es existiert } |
Gute Praxis in der Sache Anwesenheit der individuelle Beitrag wäre es, Code wie folgt schreiben:
1 2 3 4 5 6 7 8 9 10 | , my_delete_post ) ; add_action ('before_delete_post', my_delete_post); ... $post_id ) { Funktion my_delete_post ($ post_id) { ; global $ wpdb; get_post ( $post_id ) ; $ Beitrag get_post = ($ post_id); $post -> post_type == 'custom_type' ) { if ($ post -> post_type == 'custom_type') { / / Bei der Post von 'custom_type' können Sie Post, Befestigung, Seite, ... } } |










Es sind keine Kommentare für diesen Beitrag
Hinterlasse einen Kommentar