Intereting Posts
Динамическая боковая панель и срок действия XHTML? Как настроить подкатегории для страниц авторов? Лучший способ создать список музыкантов в WordPress Разрешить разные теги <span> в заголовках виджетов Как создать мета-поле, которое можно повторить? (с разделом изображения и текстовой областью) Есть в наличии товары, скрытые в каталоге, но появляющиеся в результатах поиска? Как получить Next / previous_post_link, чтобы просмотреть статьи в верхней категории родителей WP Multisite с поддержкой Mamp Pro и поддоменов подстановочных знаков, на самом деле не работает для меня Содержимое субменю дублируется Изменение моего URL-адреса Как заставить виджет Twitter Tools отображать мои твиты? Включить администраторов в раскрывающийся список автора на экране редактирования сообщений Сообщения WP_Query с комментариями Сброс фильтра сетки из пользовательского типа сообщения пуст при отправке Возможна ли переделка на страницах?

Создание мета-поля администратора для сохранения сообщения в ожидании

Рабочий процесс при использовании WordPress для изменения черновика сообщения в ожидании включает несколько нажатий и нажатия кнопок, особенно на мобильных устройствах

рабочий процесс

Таким образом, чтобы упростить мой процесс, я хотел бы создать мета-поле, которое просто сохраняет как ожидающую кнопку. (У меня есть плагин, который принимает ожидающие сообщения и публикует их в расписание, поэтому наличие одной кнопки будет в порядке)

Мой код

add_action( 'add_meta_boxes', 'wp_cfc_register_meta_boxes' ); add_action( 'save_post', 'wp_cfc_save_meta_box' ); /** * Register meta box(es). */ function wp_cfc_register_meta_boxes() { add_meta_box( 'wp_cfc_pending_meta', __( 'Add to Pending Queue', 'textdomain' ), 'wp_cfc_display_callback', 'post' ); } /** * Meta box display callback. * @param WP_Post $post Current post object. */ function wp_cfc_display_callback( $post ) { wp_nonce_field( 'wp_cfc_pending_meta_box_nonce', 'meta_box_nonce' ); // Display code/markup goes here. Don't forget to include nonces! ?> <div id="minor-publishing-actions"> <div id="save-action"> <input name="original_publish" type="hidden" id="original_publish" value='pending'" /> <?php submit_button( __( 'Save as Pending' ), 'secondary button-large', 'Publish', false ); ?> </div> </div> <?php } /** * Save meta box content. * @param int $post_id Post ID */ function wp_cfc_save_meta_box( $post_id ) { // make post id is set otherwise we'd be in trouble if(!isset($post_id)) return; $cfc_post = array ( 'ID' => $post_id, 'post_status' => 'pending'); // Bail if we're doing an auto save if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // if our nonce isn't there, or we can't verify it, bail if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'wp_cfc_pending_meta_box_nonce' ) ) return; // if our current user can't edit this post, bail if( !current_user_can( 'edit_post' ) ) return; // check it's a post and the update the post setting it to pending if( isset( $_POST['wp_cfc_save_meta_box']) ) { remove_action('save_post', 'wp_cfc_save_meta_box'); //if you don't unhook the function you'll have an infinite loop wp_update_post($cfc_post); add_action('save_post', 'wp_cfc_save_meta_box'); //rehook the function } }` 

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

Я единственный пользователь, и я являюсь администратором, не просто просто изменить роли пользователей, поскольку иногда мне нужно установить фактическую дату публикации и т. Д. Эта кнопка просто ускоряет мой рабочий процесс.

Я не могу найти никого подобного, но, надеюсь, кто-то может увидеть, чего я не вижу?

Solutions Collecting From Web of "Создание мета-поля администратора для сохранения сообщения в ожидании"

Причина, по которой ваш код не работает, заключается в том, что if -statement checking isset( $_POST['wp_cfc_save_meta_box']) никогда не оценивает значение true. Ваш код генерирует кнопку отправки,

 <?php submit_button( __( 'Save as Pending' ), 'secondary button-large', 'Publish', false ); ?> 

дает следующий HTML:

 <input type="submit" name="Publish" id="Publish" class="button button-large" value="Save as Pending" /> 

Функция submit_button WordPress принимает несколько аргументов, треть из которых – $name . Это используется как атрибут name HTML элемента ввода кнопки отправки и передается в массиве $POST при отправке формы. Таким образом, вместо желаемого $_POST['wp_cfc_save_meta_box'] $_POST['Publish'] . Чтобы решить проблему, измените параметр $name$ на 'wp_cfc_save_meta_box' . Это дает

 <?php submit_button( __( 'Save as Pending' ), 'secondary button-large', 'wp_cfc_save_meta_box', false ); ?> 

Кстати…

Вы можете сделать это немного красивее и использовать действие post_submitbox_misc_actions чтобы добавить кнопку в исходное поле « Опубликовать met» вместо настраиваемого мета-поля.