Intereting Posts
Как получить мета-значение из WP_Query? Извлечение TLD из содержимого и назначение настраиваемого поля используя wp_rewrite, но сохраните исходный url в адресной строке Редакторы не могут редактировать, но администраторы могут WooCommerce – недостающие продукты при просмотре тегами Как смешивать страницы и подкатегории в URL-адресе Текстовая область wp-editor-area исчезает при нажатии на комментарий cancel-comment-reply-link Запустить поисковый запрос еще раз без разбивки на страницы не дает никаких результатов? Как я могу ограничить количество символов, используемых для описания в сетке категорий управления? Как удалить изображение заголовка на подстраницах в Twenty Eleven (тема по умолчанию)? Как использовать printf для вывода двух ссылок? Как сгенерировать CSS из короткого кода в плагине Отображать пользовательские таксономические крачки, упорядоченные по meta_value Как контролировать CSS-класс Visiblity из панели управления WordPress на основе налоговых условий Добавить столбец имен файлов в медиа-библиотеку (2)

Мне нужно изменить черновики с использованием пользовательских данных из базы данных, а затем опубликовать их

Прежде всего, я все еще относительно новичок в программировании и разработке WordPress.

Я создаю плагин, который берет пользовательские данные из базы данных и список сохраненных черновиков, а затем изменяет черновик, выбранный пользователем, используя эти данные. Сейчас он работает следующим образом:

  • Я добавил меню администратора под категориями Posts, используя add_submenu_page (),
  • На этой странице я создал раскрывающееся меню с использованием формы выбора html, которая извлекает список черновиков из базы данных и отображает их пользователю,
  • У меня есть кнопка рядом с выпадающим меню, которая при нажатии на нее якобы публикует сообщение и изменяет его с использованием пользовательских данных из базы данных.

Моя проблема в том, что для этого я должен был бы использовать POST и отправлять все это на другую php-страницу. Я хотел бы избежать этого, если это возможно, потому что я хочу, чтобы этот плагин был прост, и мне не так комфортно в разработке WordPress.

Я хочу знать, есть ли другой способ сделать это? Какое-то встроенное действие WordPress или hook, которое я могу использовать для достижения этого? Или есть другой более простой подход в целом.

Я рассматриваю возможность переноса всего этого на параметры и с помощью API настроек и POSTing на options.php.

Я ценю любой вклад.

Изменить: Вот соответствующий код:

<div class="wrap"> <p>Select post:</p> <form name="autogenerator"> <select id='drafts' name="drafts"> <?php foreach($keywords as $keyword) { $post = get_post($keyword); $title = $post->post_title; echo "<option value=$keyword>$title</option>"; }?> <input type="button" onClick="" value="Generate!"> </select> </form> </div> 

$ keywords – это список идентификаторов сообщений. Я хотел бы иметь возможность передать этот идентификатор моей кнопке, чтобы при нажатии на нее запускалась другая функция, которая публикует выбранный пост и изменяет его с использованием данных из базы данных.

Solutions Collecting From Web of "Мне нужно изменить черновики с использованием пользовательских данных из базы данных, а затем опубликовать их"

Вы должны как-то POST данные или отправить их через GET (не очень хорошо, если у вас много данных, а не цель GET ).

Трудно точно сказать, какова ваша проблема. Варианты, которые приходят мне на ум:

  1. Используйте API AJAX (даже если запрос не является моим Javascript).
  2. Отправьте на уже созданную страницу.

Отправка на другую страницу сложна, если вам нужны функции WordPress и, вероятно, не стоит усилий.

Я бы использовал опцию №2. Вы можете обработать форму в том же блоке кода, который создает страницу плагина, но если вам нужно перенаправить ( PRG ), вам нужно будет перехватить функцию обработки в раннем подключении. Посмотрите файл wp-admin/admin.php . Начиная примерно с половины вы начинаете получать кучу крючков, начинающихся с самого общего admin_init но также включающих некоторые очень специфические крючки, такие как 'load-' . $page_hook 'load-' . $page_hook и 'load-' . $plugin_page 'load-' . $plugin_page .

Изменить. На основе кода, добавленного в вопрос, используйте API AJAX. Кроме того, ваша разметка неверна – вам нужны кавычки вокруг атрибута значения option .