Как добиться Post-Redirect-Get на странице меню администратора плагина Wordpress? - PullRequest
4 голосов
/ 13 сентября 2010

Я пишу плагин Wordpress, который добавляет страницу меню администратора. На странице есть форма. Когда форма отправлена, плагин записывает в базу данных. Но затем я сталкиваюсь с проблемой: всякий раз, когда пользователь перезагружает страницу, его / ее спрашивают, следует ли снова отправлять POSTDATA. Если пользователь нажимает да, плагин снова записывает в базу данных.

После некоторых поисков я нашел решение, шаблон "Post-Redirect-Get". Затем позже я обнаружил, что этот шаблон трудно внедрить в плагин Wordpress.

  1. Сам плагин не может отправлять HTTP 301/302, потому что некоторое содержимое уже выведено ядром Wordpress.

  2. В заголовок HTML можно вставить метатег (для создания перенаправления). Но, согласно W3C, мета-перенаправление устарело, поэтому я думаю, что лучше его не использовать.

  3. Используйте JavaScript window.location. Но что, если в браузере пользователя отключен JavaScript?

Есть ли другой способ добиться перенаправления?

Ответы [ 3 ]

8 голосов
/ 13 сентября 2010

Вы можете попробовать выполнить обработку вашего плагина в хуке admin_init, который, я считаю, запускается до вывода какого-либо контента.

1 голос
/ 13 сентября 2010

Чтобы сохранить много работы. Просто используйте настройки WordPress API.

статья Кодекса -> здесь

Более полезная статья Отто -> здесь

Используя настройки WordPress, api позаботится о проблеме Post-Redirect-Get, которую вы описываете.

0 голосов
/ 10 февраля 2014
  1. проверить, существует ли таблица в базе данных, или вставить в sql, если нет существует без действия, если таблица существует в базе данных.

  2. опция set_option, где плагин активирован.

  3. использовать функцию wordpress register_activation_hook для включения Активировать плагин

извините за мой английский, очень плохо, но я думаю, что вы можете понять

...