init
Εκτελείται μόλις φορτώσει το WordPress και είναι γνωστός ο τρέχων χρήστης, πριν σταλούν κεφαλίδες. Το συνηθισμένο σημείο για νέους τύπους άρθρων.
Πότε εκτελείται
Το init εκτελείται σε κάθε αίτημα (δημόσιο site, διαχείριση, AJAX, REST API και cron), αφού φορτώσουν το WordPress, τα plugins και το θέμα σας. Ο τρέχων χρήστης έχει ήδη οριστεί, οπότε οι is_user_logged_in() και current_user_can() λειτουργούν.
Δεν έχει σταλεί τίποτα ακόμη στον browser, αλλά ούτε το κύριο ερώτημα έχει εκτελεστεί, οπότε οι συνθήκες όπως is_page() ή is_single() δεν λειτουργούν εδώ. Για ό,τι εξαρτάται από τη σελίδα που προβάλλεται, χρησιμοποιήστε το template_redirect.
Παράμετροι
Καμία. Το callback σας δεν δέχεται ορίσματα.
Παράδειγμα: Καταχώριση προσαρμοσμένου τύπου άρθρου
add_action( 'init', function () {
register_post_type(
'testimonial',
array(
'labels' => array(
'name' => __( 'Testimonials', 'my-snippets' ),
'singular_name' => __( 'Testimonial', 'my-snippets' ),
),
'public' => true,
'has_archive' => true,
'show_in_rest' => true,
'menu_icon' => 'dashicons-format-quote',
'supports' => array( 'title', 'editor', 'thumbnail' ),
)
);
} );
Καλό να ξέρετε
- Μετά την καταχώριση νέου τύπου άρθρου, πηγαίνετε στις Ρυθμίσεις > Μόνιμοι σύνδεσμοι και πατήστε μία φορά Αποθήκευση, για να λειτουργήσουν οι διευθύνσεις του.
- Το init εκτελείται σε κάθε αίτημα, οπότε κρατήστε τη συνάρτηση ελαφριά. Τις αργές εργασίες βάλτε τις σε πιο συγκεκριμένο hook ή σε προγραμματισμένη εργασία.
- Και ο πυρήνας χρησιμοποιεί το init με δικές του προτεραιότητες (τα widgets στήνονται με προτεραιότητα 1), οπότε κρατήστε την προεπιλογή 10, εκτός αν πρέπει να τρέξετε πριν ή μετά από κάτι συγκεκριμένο.