Сначала дайте вашему вводу имя:
<input name="submit" value="Update">
Затем в вашем коде, предполагая PHP 7 +:
if ('Update' === ($_POST['submit'] ?? false)) {
wp_update_post($post, true);
}
Как это работает: когда вы нажимаете кнопку типаотправить в браузере, браузер упаковывает именованные элементы ввода и отправляет их по проводам.Веб-сервер распаковывает HTTP-сообщение и отправляет их в PHP, что делает их доступными в ассоциативном массиве (он же словарь) с именем $_POST
.(Или если метод GET, то $_GET
).Затем вы можете проверить этот массив на наличие ожидаемых ключей и их значений.
Кроме того, вам не нужно строго называть свою кнопку.Вы также можете сделать:
if (count($_POST)) {
...
}
, который утверждает, что в проведенных данных есть хотя бы одна пара значений ключей.
Вы также можете рассмотреть возможность использования var_dump('<pre>', $_POST)
в качестве диагностического пособия.
Наконец, мне неясно, откуда взялся ваш $id
, но это тоже нужно правильно настроить.