Intereting Posts
500 при использовании виртуального хоста Как добавить активный класс на текущую страницу меню? Создание больших страниц с несколькими разделами с расширенными настраиваемыми полями WooCommerce – различные значки для категорий продуктов Отображение страницы автора, если у пользователя нет сообщений Как создать пользовательское меню на основе категории или тега? почему ignore_sticky_posts в липком почтовом запросе Ошибка при показе сообщений по конкретной таксономии как сохранить несколько настраиваемых полей для публикации за один раз? Задача cron для автоматического удаления сообщений определенного типа сообщений старше x дней иерархическая справка wp_list_pages Пользовательская таксономия Сортировка для пользовательского запроса AJAXIFY WordPress Theme Frontend menu Изменить / Удалить тип и категорию по умолчанию? Ajax загружает результаты на пустой странице

Как добавить мета-поля (поля повторителя) из WordPress назад?

У меня есть специальная функция типа сообщения. У каждой службы будут предметы. Для каждого элемента будет «имя товара» и «цена». Раньше я создал мета-ящики для 5 элементов, т. Е. 10 мета-ящиков, что, по-моему, может быть неправильным.

Цель состоит в том, чтобы предоставить пользователю функциональность, в которую они могут добавить столько элементов, которые они хотят, и не ограничиваются только 5 элементами. Например, я создаю это для салона. И есть услуга Уход за лицом. И под покровом лица есть много подуслуг (предметов), таких как обычная очистка, d tan, facial и т. Д. Поэтому в реальном времени необходимо решить, сколько метабокса нужно создать ..

Есть 40-50 сервисов и более только под Уход за лицом. Существуют и другие услуги, такие как прическа, окраска волос и т. Д. У меня есть таксономические термины как мужчины, женщины и унисекс. Вы пишете textarea, это не очень хороший вариант, но я не понимаю, почему этот флажок.

Теперь есть еще несколько предметов. Как выполнить эту задачу, предоставив пользовательскую опцию в бэкэнде добавления нового элемента, который будет генерировать мета-поля для «имя» и «цена»,

Пожалуйста, предложите мне что-то, и следующий код, который я использовал.

<?php define( 'ROOT', plugins_url( '', __FILE__ ) ); define( 'STYLES', ROOT . '/css/' ); define( 'SCRIPTS', ROOT . '/js/' ); // Registers the new post type and taxonomy function wpt_services_posttype() { register_post_type( 'services', array( 'labels' => array( 'name' => __( 'Services' ), 'singular_name' => __( 'services' ), 'add_new' => __( 'Add New services' ), 'add_new_item' => __( 'Add New services' ), 'edit_item' => __( 'Edit service' ), 'new_item' => __( 'Add New service' ), 'view_item' => __( 'View service' ), 'search_items' => __( 'Search service' ), 'not_found' => __( 'No services found' ), 'not_found_in_trash' => __( 'No services found in trash' ) ), 'public' => true, 'supports' => array( 'title','editor','thumbnail', 'excerpts','page-attributes' ), 'capability_type' => 'post', 'rewrite' => array("slug" => "services"), // Permalinks format 'menu_position' => 6, 'register_meta_box_cb' => 'add_services_metaboxes', 'show_ui'=>true, 'query_var'=>true ) ); } add_action( 'init', 'wpt_services_posttype' ); /*Add custom taxonomy to the services post-type */ /*Now we add the meta boxes to the services*/ add_action('add_meta_boxes', 'add_services_metaboxes'); function add_services_metaboxes() { add_meta_box('wpt_services_men', __('Charges for Men'), 'wpt_services_men', 'services', 'normal', 'high'); } function wpt_services_men(){ global $post; // Noncename needed to verify where the data originated echo '<input type="hidden" name="servicesmeta_noncename" id="servicesmeta_noncename" value="' . wp_create_nonce( plugin_basename(__FILE__) ) . '" />'; // Get the location data if its already been entered $serviceM1 = get_post_meta($post->ID, '_serviceM1', true); $serviceM2 = get_post_meta($post->ID, '_serviceM2', true); $serviceM3 = get_post_meta($post->ID, '_serviceM3', true); $serviceM4 = get_post_meta($post->ID, '_serviceM4', true); $serviceM5 = get_post_meta($post->ID, '_serviceM5', true); $priceM1 = get_post_meta($post->ID, '_priceM1', true); $priceM2 = get_post_meta($post->ID, '_priceM2', true); $priceM3 = get_post_meta($post->ID, '_priceM3', true); $priceM4 = get_post_meta($post->ID, '_priceM4', true); $priceM5 = get_post_meta($post->ID, '_priceM5', true);?> <!-- Echo out the field --> <?php echo '<label >';?><?php _e( 'Service1:' );?></label> <?php echo '<textarea name=_serviceM1 rows="2" cols="45">'.$serviceM1.'</textarea>';?> <?php echo '<label >';?><?php _e( 'Price:' );?></label> <?php echo '<textarea name=_priceM1 rows="2" cols="8">'.$priceM1.'</textarea>';?> <?php echo '<br><label >';?><?php _e( 'Service2:' );?></label> <?php echo '<textarea name=_serviceM2 rows="2" cols="45">'.$serviceM2.'</textarea>';?> <?php echo '<label >';?><?php _e( 'Price:' );?></label> <?php echo '<textarea name=_priceM2 rows="2" cols="8">'.$priceM2.'</textarea>';?> <?php echo '<br><label >';?><?php _e( 'Service3:' );?></label> <?php echo '<textarea name=_serviceM3 rows="2" cols="45">'.$serviceM3.'</textarea>';?> <?php echo '<label >';?><?php _e( 'Price:' );?></label> <?php echo '<textarea name=_priceM3 rows="2" cols="8">'.$priceM3.'</textarea>';?> <?php echo '<br><label >';?><?php _e( 'Service4:' );?></label> <?php echo '<textarea name=_serviceM4 rows="2" cols="45">'.$serviceM4.'</textarea>';?> <?php echo '<label >';?><?php _e( 'Price:' );?></label> <?php echo '<textarea name=_priceM4 rows="2" cols="8">'.$priceM4.'</textarea>';?> <?php echo '<br><label >';?><?php _e( 'Service5:' );?></label> <?php echo '<textarea name=_serviceM5 rows="2" cols="45">'.$serviceM5.'</textarea>';?> <?php echo '<label >';?><?php _e( 'Price:' );?></label> <?php echo '<textarea name=_priceM5 rows="2" cols="8">'.$priceM5.'</textarea>'; } function wpt_save_services_meta($post_id, $post) { // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['servicesmeta_noncename'], plugin_basename(__FILE__) )) { return $post->ID; } // Is the user allowed to edit the post or page? if ( !current_user_can( 'edit_post', $post->ID )) return $post->ID; // OK, we're authenticated: we need to find and save the data // We'll put it into an array to make it easier to loop though. $services_meta['_serviceM1'] = $_POST['_serviceM1']; $services_meta['_serviceM2'] = $_POST['_serviceM2']; $services_meta['_serviceM3'] = $_POST['_serviceM3']; $services_meta['_serviceM4'] = $_POST['_serviceM4']; $services_meta['_serviceM5'] = $_POST['_serviceM5']; $services_meta['_priceM1'] = $_POST['_priceM1']; $services_meta['_priceM2'] = $_POST['_priceM2']; $services_meta['_priceM3'] = $_POST['_priceM3']; $services_meta['_priceM4'] = $_POST['_priceM4']; $services_meta['_priceM5'] = $_POST['_priceM5']; // Add values of $services_meta as custom fields foreach ($services_meta as $key => $value) { // Cycle through the $services_meta array! if( $post->post_type == 'revision' ) return; // Don't store custom data twice $value = implode(',', (array)$value); // If $value is an array, make it a CSV (unlikely) if(get_post_meta($post->ID, $key, FALSE)) { // If the custom field already has a value update_post_meta($post->ID, $key, $value); } else { // If the custom field doesn't have a value add_post_meta($post->ID, $key, $value); } if(!$value) delete_post_meta($post->ID, $key); // Delete if blank } } add_action('save_post', 'wpt_save_services_meta', 1, 2); // save the custom fields ?> 

Solutions Collecting From Web of "Как добавить мета-поля (поля повторителя) из WordPress назад?"