Intereting Posts
Вопрос о .htaccess Как добавить идентификатор категории на страницу администратора Проверьте, установлена ​​ли таксономия категории CTP в коротком коде Добавление функции pagenavi для отображения закладок Какой точный CSS-минимизатор использует ядро ​​WP? Ссылка на RSS-канал на странице архивов не работает Сделать имя пользователя в качестве имени сайта в комментариях, если оно соответствует определенным ролям Каков наилучший способ отображения сетки логотипов клиентов? Как иметь одну страницу с сообщениями в хронологическом порядке, но другие хронологически? Как зарегистрировать новую страницу настроек? Добавление зависимостей к скрипту enqueing Есть ли какая-либо неотъемлемая разница между add_filter () и add_shortcode () для изменения ? Как показать количество неопубликованных статей? Требовать проверки пользовательской таксономии Запрос сначала отсортировать список по мета-ключу (если он существует) и показать оставшиеся сообщения без мета-ключа, упорядоченного по заголовку

Быстрая настройка экрана редактирования

Возможный дубликат: как показать пользовательский мета-ящик на экране «Быстрое редактирование»?

Я пытаюсь редактировать экран быстрого редактирования в своем пользовательском типе сообщений «посетитель», чтобы добавить некоторые параметры для моих конечных пользователей. Мой пользовательский тип сообщения не требует / не требует даты публикации, пароля для просмотра, публикации статуса или больших ящиков таксономии для пользовательских категорий посетителей на нем.

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

Я также нашел сообщение (связанное в моем возможном дубликате) на форумах wordpress.org, но точно не знаю, что он делает.

Solutions Collecting From Web of "Быстрая настройка экрана редактирования"

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

Добавить поля формы в Quick Edit

<?php add_action('quick_edit_custom_box', 'quickedit_posts_custom_box', 10, 2); add_action('admin_head-edit.php', 'quick_add_script'); function quickedit_posts_custom_box( $col, $type ) { if( $col != 'COLUMN_NAME' || $type != 'post' ) { return; } ?> <fieldset class="inline-edit-col-right"><div class="inline-edit-col"> <div class="inline-edit-group"> <label class="alignleft"> <input type="checkbox" name="yourformfield" id="yourformfield_check"> <span class="checkbox-title">This Post Has Cake</span> </label> </div> </fieldset> <?php } function quick_add_script() { ?> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('a.editinline').live('click', function() { var id = inlineEditPost.getId(this); var val = parseInt(jQuery('#inline_' + id + '_yourformfield').text()); jQuery('#yourformfield_check').attr('checked', !!val); }); }); </script> <?php } 

Я делаю немного для того, чтобы делать свой собственный рог здесь, но для упрощения редактирования пользовательских метаполей в WordPress я написал плагин под названием Custom Bulk / Quick Edit .

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

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

В файле functions.php вашей темы добавьте код, похожий на следующий.

 add_filter( 'manage_post_posts_columns', 'my_manage_post_posts_columns' ); function my_manage_post_posts_columns( $columns ) { $columns['custom_stuff'] = esc_html__( 'Custom Stuff Here' ); return $columns; } 

В качестве примера работы с персонализированным типом сообщений, названным news-room , попробуйте следующее.

 add_filter( 'manage_news-room_posts_columns', 'my_manage_newsroom_posts_columns' ); function my_manage_newsroom_posts_columns( $columns ) { $columns['wpcf-publication-author'] = esc_html__( 'Publication Author'); $columns['wpcf-newsroom-type'] = esc_html__( 'News Room Type'); $columns['_views_template'] = esc_html__( 'Content Template'); return $columns; } 

Это основано на управлении фильтром _ $ {post_type} _posts_columns для типа post post.

Обратите внимание, что для дальнейшего развития и поддержки бесплатный плагин ограничивается собственными встроенными типами сообщений WordPress. Если вы работаете с настраиваемым типом сообщений, вы можете приобрести Custom Bulk / Quick Edit Premium.

Кроме того, вы можете извлечь код из плагина через https://github.com/michael-cannon/custom-bulkquick-edit .

Добавьте этот код в свой файл functions.php . Этот код используется для пользовательского расписания типа сообщений. Измените тип сообщения в соответствии с вашими потребностями.

 // Add to our admin_init function add_filter('manage_schedule_posts_columns', 'myown_add_post_columns'); function myown_add_post_columns($columns) { $columns['stime'] = 'Start Time'; $columns['etime'] = 'End Time'; return $columns; } // Add to our admin_init function add_action('manage_schedule_posts_custom_column', 'myown_render_post_columns', 10, 2); function myown_render_post_columns($column_name, $id) { switch ($column_name) { case 'stime': // show my_field echo get_post_meta( $id, 'stime', TRUE); case 'etime': // show my_field $my_fieldvalue1 = get_post_meta( $id, 'etime', TRUE); echo $my_fieldvalue1; } } // Add to our admin_init function add_action('quick_edit_custom_box', 'myown_add_quick_edit', 10, 2); function myown_add_quick_edit($column_name, $post_type) { if ($column_name != 'stime') return; ?> <fieldset class="inline-edit-col-left"> <div class="inline-edit-col"> <span class="title">start time</span> <input id="myfield_noncename" type="hidden" name="myfield_noncename" value="" /> <input id="myfield" type="text" name="stime" value=""/></br> <span class="title">End time</span> <input id="myfield1" type="text" name="etime" value=""/></br> <div id="main"> <span class="title">Add New Session date</span></br> <a href="#" class="aclick">Add new</a></br></div> </div> </fieldset> <?php } // Add to our admin_init function add_action('save_post', 'myown_save_quick_edit_data'); function myown_save_quick_edit_data($post_id) { // verify if this is an auto save routine. if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; // Check permissions if ( 'stime' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id ) ) return $post_id; } if ( 'etime' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id ) ) return $post_id; } else { if ( !current_user_can( 'edit_post', $post_id ) ) return $post_id; } if(isset($_POST['tag-name'])) { if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return; $post = get_post($post_id); if ( $post->post_type == 'schedule') { // change 'post' to any cpt you want to target $term = get_term_by('slug', $post->post_name, 'schedule_category'); if ( empty($term) ) { $add = wp_insert_term( $_POST['tag-name'], 'schedule_category', array('slug'=> $_POST['tag-name']) ); if ( is_array($add) && isset($add['term_id']) ) { wp_set_object_terms($post_id, $add['term_id'], 'schedule_category', true ); } } } } // Authentication passed now we save the data if (isset($_POST['stime']) && ($post->post_type != 'revision')) { $my_fieldvalue = esc_attr($_POST['stime']); if ($my_fieldvalue) update_post_meta( $post_id, 'stime', $my_fieldvalue); else delete_post_meta( $post_id, 'stime'); } return $my_fieldvalue; if (isset($_POST['etime']) && ($post->post_type != 'revision')) { $my_fieldvalue1 = esc_attr($_POST['etime']); if ($my_fieldvalue1) update_post_meta( $post_id, 'etime', $my_fieldvalue1); else delete_post_meta( $post_id, 'etime'); } return $my_fieldvalue1; } // Add to our admin_init function add_action('admin_footer', 'myown_quick_edit_javascript'); function myown_quick_edit_javascript() { global $current_screen; if (($current_screen->post_type != 'schedule')) return; ?> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery(".aclick").one("click", function(){ jQuery("#main").append('<input type="text" name="tag-name" />'); }); }); function set_myfield_value(fieldValue,fieldValue1, nonce) { // refresh the quick menu properly inlineEditPost.revert(); console.log(fieldValue); console.log(fieldValue1); jQuery('#myfield').val(fieldValue); jQuery('#myfield1').val(fieldValue1); } </script> <?php } // Add to our admin_init function add_filter('post_row_actions', 'myown_expand_quick_edit_link', 10, 2); function myown_expand_quick_edit_link($actions, $post) { global $current_screen; if (($current_screen->post_type != 'schedule')) return $actions; $nonce = wp_create_nonce( 'myfield_'.$post->ID); $myfielvalue = get_post_meta( $post->ID, 'stime', TRUE); $myfielvalue1 = get_post_meta( $post->ID, 'etime', TRUE); $actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="'; $actions['inline hide-if-no-js'] .= esc_attr( __( 'Edit this item inline' ) ) . '"'; $actions['inline hide-if-no-js'] .= " onclick=\"set_myfield_value('{$myfielvalue}','{$myfielvalue1}')\" >"; $actions['inline hide-if-no-js'] .= __( 'Quick Edit' ); $actions['inline hide-if-no-js'] .= '</a>'; return $actions; }