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

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

template_redirect

Εκτελείται στο δημόσιο site όταν το WordPress ξέρει τι προβάλλεται, πριν φορτώσει το πρότυπο. Ιδανικό για ανακατευθύνσεις και ελέγχους πρόσβασης.

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

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

Το template_redirect εκτελείται μόνο κατά τη φόρτωση δημόσιων σελίδων, αφού εκτελεστεί το κύριο ερώτημα και πριν το WordPress διαλέξει αρχείο προτύπου. Οι συνθήκες όπως is_page(), is_singular() και is_404() λειτουργούν, και δεν έχει σταλεί HTML, οπότε μπορείτε ακόμη να κάνετε ανακατεύθυνση ή να ορίσετε κεφαλίδες.

Δεν εκτελείται στη διαχείριση, σε κλήσεις AJAX ούτε σε αιτήματα REST API.

Παράμετροι

Καμία. Το callback σας δεν δέχεται ορίσματα.

Παράδειγμα: Ανακατεύθυνση αποσυνδεδεμένων επισκεπτών από σελίδα μελών στη σύνδεση

PHP
add_action( 'template_redirect', function () {
	if ( is_page( 'members' ) && ! is_user_logged_in() ) {
		wp_safe_redirect( wp_login_url( get_permalink() ) );
		exit;
	}
} );

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

  • Καλείτε πάντα exit μετά τη wp_safe_redirect() ή τη wp_redirect(), αλλιώς η σελίδα συνεχίζει να φορτώνει.
  • Μη χρησιμοποιείτε αυτό το hook για να φορτώσετε άλλο πρότυπο. Γι' αυτό υπάρχει το φίλτρο template_include.
  • Η cache σελίδων μπορεί να σερβίρει αποθηκευμένο αντίγραφο χωρίς να τρέξει καθόλου PHP. Εξαιρέστε τις προστατευμένες σελίδες από την cache, ώστε ο έλεγχος να γίνεται πάντα.

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

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