Перенаправление на Административную Страницу

14 мая 2012 г., 22:46:12
Просмотры: 59K
Голосов: 23

Возможно ли перенаправить пользователей на определенную административную страницу, если они заходят на другую административную страницу?

Например, если пользователь попадает на "все страницы" /wp-admin/edit.php?post_type=page

они будут перенаправлены на "добавить новую страницу" /wp-admin/post-new.php?post_type=page

0
Все ответы на вопрос 3
0
31
/**
 * Перенаправление административных страниц.
 *
 * Перенаправление определенной административной страницы на другую конкретную административную страницу.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
function disallowed_admin_pages() {

    global $pagenow;

    # Проверяем текущую административную страницу.
    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' );

Альтернативный синтаксис:

/**
 * Перенаправление административных страниц.
 *
 * Перенаправление определенной административной страницы на другую конкретную административную страницу.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    global $pagenow;

    # Проверяем текущую административную страницу.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

        wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
        exit;

    }

} );
19 февр. 2013 г. 18:01:31
0

Решение Майкла, по-видимому, предназначено для использования внутри класса, поэтому для тех, кто хочет автономную функцию, которая будет работать напрямую в functions.php, в примере ниже представлено перенаправление с customize.php на страницу настроек темы, а также перенаправление из оригинальной функции Майкла.

function admin_redirects() {
    global $pagenow;

    /* Перенаправление из Customizer в настройки темы */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* Перенаправление из /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');
13 янв. 2016 г. 12:34:59
0

Да, это возможно, добавив действие (action) к хуку admin_init. В этот момент вы можете проверить URI запроса на соответствие /wp-admin/edit.php?post_type=page, и если оно совпадает, перенаправить на страницу добавления записей: /wp-admin/post-new.php?post_type=page.

Также страницы Plugin API и справочник по действиям (action reference) в WordPress Codex подробно рассказывают о действиях и их работе.

15 мая 2012 г. 09:15:10