В административную панель сайта на страницу редактирования поста добавляю кнопку (через functions.php):
function accept_button() {
$screens = array( 'post' );
foreach ( $screens as $screen )
add_meta_box( 'section23', 'Решение', 'accept_button_callback', $screen, $context = 'side');
}
add_action('add_meta_boxes', 'accept_button');
//содержимое блока
function accept_button_callback() {
//получаем id поста
$cur_post_id = get_the_ID();
//вывод кнопки
echo '<form method="POST" action="/указываю путь к php файлу-обработчику/">
<input type="hidden" name="status_1" value="1">
<input type="hidden" name="post_ida" value="'.$cur_post_id.'">
<input type="submit" id="accept_button_admin" class="button" name="accept_button_admin" value="Одобрить";>
</form>';}
Код файла-обработчика:
<?php
if( isset( $_POST['status_1'] ) ) {
//здесь код обновления записи в БД $wpdb->update...
;}
?>
Вся проблема в том, что из админки не отправляется POST-запрос. То есть, по нажатию кнопки, просто перезагружается страница, в файл-обработчик ничего не приходит. Неужели при работе через административную панель post-запрос отправить нельзя или wordpress блокирует post-запросы из админки?
почти вся страница редактирования поста в админке - это одна большая форма, т.е. почти все содержимое уже находится внутри тега form, добавить внутрь этого тега еще одну форму не получится
и да, все данные с этой формы отправляются в свой файл-обработчик - post.php
Просто добавьте свои поля и при срабатывании экшна save_post получите и обработайте данные со своих полей.
Подробное описание