Pengalihan Halaman Admin


17

Apakah mungkin untuk mengarahkan pengguna ke halaman admin jika mereka mengakses halaman admin lain?

Misalnya jika mereka pengguna pernah mengklik "semua halaman" /wp-admin/edit.php?post_type=page

mereka akan diarahkan ke "tambah halaman Baru" /wp-admin/post-new.php?post_type=page

Jawaban:


23
/**
 * 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;

    }

}

Nyalakan fungsi di atas pada kait admin_init.

add_action( 'admin_init', 'disallowed_admin_pages' );

Sintaks alternatif:

/**
 * 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;

    }

} );

3

Solusi Michael tampaknya dimaksudkan untuk digunakan di dalam kelas, jadi bagi siapa pun yang menginginkan fungsi mandiri yang akan bekerja secara langsung di functions.php, contoh di bawah ini termasuk redirect dari customize.php ke halaman opsi tema dan yang dari fungsi asli 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');

0

Ya ini mungkin dengan menambahkan tindakan untuk admin_init, pada saat itu Anda bisa memeriksa uri permintaan untuk melihat apakah itu cocok/wp-admin/edit.php?post_type=page dan jika tidak mengeluarkan redirect ke halaman posting add: /wp-admin/post-new.php?post_type=page.

Juga API Plugin dan halaman referensi tindakan pada kodeks WordPress menjelaskan lebih detail tentang tindakan dan cara kerjanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.