Yönetici Sayfası Yönlendirme


18

Başka bir yönetici sayfasına erişmeleri durumunda kullanıcıları bir yönetici sayfasına yönlendirmek mümkün müdür?

Örneğin, bir kullanıcı "tüm sayfalar" a ulaşırsa /wp-admin/edit.php?post_type=page

"Yeni sayfa ekle" ye yönlendirilirler /wp-admin/post-new.php?post_type=page

Yanıtlar:


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;

    }

}

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;

    }

} );

4

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');

0

Evet bu bir ekleyerek mümkündür eylemi için admin_initbunu maçları görmek için istek URI kontrol edebilir bu noktada, /wp-admin/edit.php?post_type=pageve 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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.