Intereting Posts
Как импортировать адреса электронной почты в подписки на WordPress.com? Как получить массив элементов меню на панели инструментов? Как вызвать пользовательские категории таксономии с короткими кодами WordPress .htaccess рассматривает блог как каталог Используйте delete_category, delete_term или какое действие при удалении термина категории? Добавить функцию jQuery Повторить код, изменить переменную? Как я могу предотвратить обновление следующей версии плагина от одного из файлов? Как перемещать комментарии Bubble на правую сторону панели инструментов Как заблокировать поисковые системы, индексирующие определенные действия AJAX Удаление родительского пула из URL-адреса в настраиваемом типе сообщений 404 при использовании разбивки на страницы в категории Требуемая ошибка проверки в поле пользовательского контроля woocommerce, которое не отображается на экране Добавить отображаемое изображение на боковой панели Почему WordPress имеет noop.php-файл?

Как добавить мета-поля (поля повторителя) из 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 назад?"