Μετάβαση στο περιεχόμενο

Early-bird άδεια εφ’ όρου ζωής: $199 εφάπαξ, μόνο για τους πρώτους 200 αγοραστές. Δείτε την προσφορά

save_post

Εκτελείται αφού δημιουργηθεί ή ενημερωθεί άρθρο οποιουδήποτε τύπου. Για αποθήκευση επιπλέον δεδομένων ή καθαρισμό cache όταν αλλάζει το περιεχόμενο.

  • Τύπος Action
  • Προέλευση WordPress
  • Από την έκδοση 1.5.0
  • Καλείται στο wp-includes/post.php

Πότε εκτελείται

Το WordPress εκτελεί το save_post στο τέλος της wp_insert_post(), αφού το άρθρο γραφτεί στη βάση δεδομένων. Αυτό καλύπτει δημοσίευση και ενημέρωση από τον επεξεργαστή, Γρήγορη επεξεργασία, εισαγωγές και το REST API, αλλά και αναθεωρήσεις, αυτόματες αποθηκεύσεις και μεταφορά στα διαγραμμένα.

Αν η οθόνη επεξεργασίας έχει κλασικά meta boxes, ο επεξεργαστής μπλοκ τα αποθηκεύει με δεύτερο αίτημα, που εκτελεί ξανά το save_post.

Παράμετροι

Παράμετροι
$post_idint ID του άρθρου.
$postWP_Post Το αντικείμενο του άρθρου.
$updatebool Αν πρόκειται για ενημέρωση υπάρχοντος άρθρου.

Παράδειγμα: Καταγραφή του τελευταίου χρήστη που επεξεργάστηκε ένα άρθρο

PHP
add_action( 'save_post', function ( $post_id, $post, $update ) {
	if ( ! $update || wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
		return;
	}
	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
		return;
	}
	if ( 'post' !== $post->post_type || ! current_user_can( 'edit_post', $post_id ) ) {
		return;
	}
	update_post_meta( $post_id, '_my_last_editor', get_current_user_id() );
}, 10, 3 );

Καλό να ξέρετε

  • Χρησιμοποιήστε το save_post_{post_type}, π.χ. save_post_page, για να εκτελείται μόνο για έναν τύπο άρθρου.
  • Αν καλέσετε τη wp_update_post() μέσα σε αυτό το hook, το save_post εκτελείται ξανά. Αφαιρέστε πρώτα τη συνάρτησή σας, αλλιώς θα δημιουργήσετε ατέρμονο βρόχο.
  • Όροι ταξινομιών και προσαρμοσμένα πεδία που στέλνονται μέσω REST API μπορεί να αποθηκευτούν μετά από αυτό το hook. Αν τα χρειάζεστε, χρησιμοποιήστε το wp_after_insert_post (WordPress 5.6 και νεότερο).

Μεταφέρετε τα snippets σας μέσα σε ένα απόγευμα.

Η εισαγωγή δεν αλλάζει τίποτα μέχρι να κάνετε τη μετάβαση, και τα παλιά σας shortcodes συνεχίζουν να λειτουργούν.