Câu trả lời:
/**
* 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;
}
}
Bắn các chức năng trên vào móc admin_init
.
add_action( 'admin_init', 'disallowed_admin_pages' );
Cú pháp thay thế:
/**
* 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;
}
} );
Giải pháp của Michael dường như được dự định để sử dụng bên trong một lớp, vì vậy, đối với bất kỳ ai muốn một chức năng độc lập sẽ hoạt động trực tiếp trong hàm.php, ví dụ dưới đây bao gồm chuyển hướng từ custom.php đến trang tùy chọn chủ đề và một chức năng từ chức năng ban đầu của Michael .
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');
Có, điều này là có thể bằng cách thêm một hành động vào admin_init
, tại thời điểm đó, bạn có thể kiểm tra uri yêu cầu để xem nó có khớp /wp-admin/edit.php?post_type=page
hay không và liệu nó có chuyển hướng đến trang thêm bài viết không : /wp-admin/post-new.php?post_type=page
.
Ngoài ra API Plugin và các trang tham chiếu hành động trên codex WordPress đi sâu vào chi tiết hơn về các hành động và cách chúng hoạt động.