Сохранить пользовательский параметр URL-адреса после сохранения записи


Я тестирую различные макеты для своих страниц администратора, и самый простой способ, который я нашел, чтобы определить, какой макет загружать, - это параметры URL. Одним из таких параметров является "полноэкранный режим=1", который, например, скрывает меню администратора. Проблема в том, что всякий раз, когда я сохраняю сообщение/пользовательский тип сообщения, отправляя форму, WordPress перенаправляет меня без сохранения моего параметра, тем самым нарушая мой макет, добавляя обратно меню администратора...

Есть ли простой способ достичь это?

Author: Tomas Buteler, 2011-07-05

1 answers

Я наконец-то понял это. Оказывается, я был так сосредоточен на фильтрах и действиях, что забыл об основах.

Чтобы сохранить любые пользовательские параметры URL-адреса после сохранения сообщения (путем отправки формы), выполните следующие действия:

Отфильтруйте свой URL-адрес администратора с помощью условия, которое проверяет параметр, который вы хотите сохранить ( на основе этого ответа ), например:

add_filter('admin_url','add_fullscreen_param');
function add_fullscreen_param( $link ) {
    if(isset($_REQUEST['fullscreen']) && $_REQUEST['fullscreen'] == '1') {
        $params['fullscreen'] = '1';
    }
    $link = add_query_arg( $params, $link );

    return $link;
}

Затем все, что вам нужно сделать, это убедиться, что вы отправили этот запрос вместе с вашей формой, потому что он активирует фильтр выше, прежде чем перенаправлять обратно на ваш пост/страницу / пользовательский тип записи. Для этого просто добавьте скрытый ввод.

if(isset($_REQUEST['fullscreen']) && $_REQUEST['fullscreen'] == '1') {  
    echo('<input type="hidden" name="fullscreen" value="1" />');
}

Поэтому, если вы получите доступ к /wp-admin/post.php?post=100&action=edit&fullscreen=1, этот последний параметр будет там после сохранения формы.

 2
Author: Tomas Buteler, 2017-04-13 12:37:32