Yanıtlar:
/**
* Redirect admin pages.
*
* Redirect specific admin page to another specific admin page.
*
* @return void
* @author Michael Ecklund
*
*/
function disallowed_admin_pages() {
global $pagenow;
# Check current admin page.
if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {
wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
exit;
}
}
Yukarıdaki işlevi kancaya ateşleyin admin_init
.
add_action( 'admin_init', 'disallowed_admin_pages' );
Alternatif sözdizimi:
/**
* Redirect admin pages.
*
* Redirect specific admin page to another specific admin page.
*
* @return void
* @author Michael Ecklund
*
*/
add_action( 'admin_init', function () {
global $pagenow;
# Check current admin page.
if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {
wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
exit;
}
} );
Michael'ın çözümü bir sınıf içinde kullanılmak üzere tasarlanmış gibi görünüyor, bu nedenle doğrudan işlevlerde çalışacak bağımsız bir işlev isteyen herkes için. Php, aşağıdaki örnek, custom.php'den bir tema seçenekleri sayfasına ve Michael'ın orijinal işlevinden bir yönlendirme içerir. .
function admin_redirects() {
global $pagenow;
/* Redirect Customizer to Theme options */
if($pagenow == 'customize.php'){
wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
exit;
}
/* OP's redirect from /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');
Evet bu bir ekleyerek mümkündür eylemi için admin_init
bunu maçları görmek için istek URI kontrol edebilir bu noktada, /wp-admin/edit.php?post_type=page
ve eklenti mesajlar sayfasına yönlendirme sorunu yaparsa: /wp-admin/post-new.php?post_type=page
.
Ayrıca, Eklenti API'sı ve WordPress kodundaki eylem referans sayfaları, eylemler ve nasıl çalıştıkları hakkında daha ayrıntılı olarak ele alınır.