Redirecționare Pagină de Administrare
Este posibil să redirecționezi utilizatorii către o pagină de administrare dacă aceștia accesează o altă pagină de administrare?
De exemplu, dacă un utilizator accesează vreodată "toate paginile" /wp-admin/edit.php?post_type=page
ar fi redirecționat către "adaugă pagină nouă" /wp-admin/post-new.php?post_type=page

/**
* Redirecționează paginile de administrare.
*
* Redirecționează o anumită pagină de administrare către altă pagină specifică.
*
* @return void
* @author Michael Ecklund
*
*/
function disallowed_admin_pages() {
global $pagenow;
# Verifică pagina curentă de administrare.
if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {
wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
exit;
}
}
Execută funcția de mai sus pe hook-ul admin_init
.
add_action( 'admin_init', 'disallowed_admin_pages' );
Sintaxă alternativă:
/**
* Redirecționează paginile de administrare.
*
* Redirecționează o anumită pagină de administrare către altă pagină specifică.
*
* @return void
* @author Michael Ecklund
*
*/
add_action( 'admin_init', function () {
global $pagenow;
# Verifică pagina curentă de administrare.
if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {
wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
exit;
}
} );

Soluția lui Michael pare să fie destinată pentru utilizarea într-o clasă, așa că pentru cei care doresc o funcție independentă care să funcționeze direct în functions.php, exemplul de mai jos include o redirecționare de la customize.php către o pagină de opțiuni pentru temă și cea din funcția originală a lui Michael.
function admin_redirects() {
global $pagenow;
/* Redirecționează Customizer către Opțiunile temei */
if($pagenow == 'customize.php'){
wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
exit;
}
/* Redirecționarea OP de la /wp-admin/edit.php?post_type=page */
if($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'page'){
wp_redirect(admin_url('/post-new.php?post_type=page', 'http'), 301);
exit;
}
}
add_action('admin_init', 'admin_redirects');

Da, acest lucru este posibil prin adăugarea unei acțiuni la admin_init
, în acel moment puteți verifica URI-ul cererii pentru a vedea dacă se potrivește cu /wp-admin/edit.php?post_type=page
și dacă se potrivește, puteți iniția o redirecționare către pagina de adăugare articole: /wp-admin/post-new.php?post_type=page
.
De asemenea, paginile API Plugin și referința acțiunilor din codex-ul WordPress oferă mai multe detalii despre acțiuni și modul în care funcționează.
