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