การเปลี่ยนเส้นทางหน้าผู้ดูแลระบบ


18

เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าผู้ดูแลระบบหากพวกเขาเข้าถึงหน้าผู้ดูแลระบบคนอื่น?

ตัวอย่างเช่นหากผู้ใช้เคยเห็น "ทุกหน้า" /wp-admin/edit.php?post_type=page

พวกเขาจะถูกเปลี่ยนเส้นทางไปที่ "เพิ่มหน้าใหม่" /wp-admin/post-new.php?post_type=page

คำตอบ:


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

    }

}

admin_initไฟฟังก์ชั่นดังกล่าวข้างต้นในเบ็ด

add_action( 'admin_init', 'disallowed_admin_pages' );

ไวยากรณ์สำรอง:

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

โซลูชันของ Michael ดูเหมือนจะมีไว้สำหรับใช้ในชั้นเรียนดังนั้นสำหรับทุกคนที่ต้องการฟังก์ชั่นแบบสแตนด์อโลนซึ่งจะทำงานได้โดยตรงใน functions.php ตัวอย่างด้านล่างมีการเปลี่ยนเส้นทางจาก Customize.php ไปยังหน้าตัวเลือกชุดรูปแบบ .

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

ใช่นี้เป็นไปได้โดยการเพิ่มการดำเนินการเพื่อadmin_initที่จุดที่คุณสามารถตรวจสอบ URI คำขอเพื่อดูว่ามันตรงและถ้าไม่ออกเปลี่ยนเส้นทางไปยังหน้าโพสต์เพิ่มไปนี้:/wp-admin/edit.php?post_type=page/wp-admin/post-new.php?post_type=page

นอกจากนี้ยังมีAPI APIและหน้าการอ้างอิงการกระทำบน Codex ของเวิร์ดเพรสซึ่งมีรายละเอียดเพิ่มเติมเกี่ยวกับการกระทำและวิธีการใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.