Intereting Posts
Авансированный запрос отношений полей по запросу и запрос внутри Как создать пользовательскую домашнюю страницу через плагин? Получение идентификатора мета-окна WordPress Добавить нового пользователя – отправить электронную почту активации Как пометить основной тег? Отдельные страницы WordPress CSS и JS-ссылки Показать авторов выборочно Создать сайт программно для WPMU Можно ли добавлять сообщения и изображения (авторазмер) для пользовательских типов сообщений со сценарием? Создание параметров на странице для настраиваемого типа сообщений Получить атрибуты вложенных коротких кодов Breadcrumb не показывает тип персонализированной категории Зачем позволять переопределять важнейшие подключаемые функции wp_verify_nonce и wp_create_nonce? Добавить приложение для всех изображений в сообщении Скрыть содержимое и функции из определенных пользовательских ролей

Как добавить меню выбора в этот код обмена?

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

Какую функцию я могу использовать для успешного добавления поля выбора?

// Add the Inventory Meta Boxes function add_inventory_metaboxes() { add_meta_box('inventory_information', 'Inventory Information', 'inventory_information', 'inventory', 'side', 'default'); } // The Event Location Metabox function inventory_information() { global $post; // Noncename needed to verify where the data originated echo '<input type="hidden" name="inventorymeta_noncename" id="inventorymeta_noncename" value="' . wp_create_nonce( plugin_basename(__FILE__) ) . '" />'; // Get the location data if its already been entered $stocknum = get_post_meta($post->ID, '_dappcf_i_stocknum', true); $vin = get_post_meta($post->ID, '_dappcf_i_vin', true); $saleprice = get_post_meta($post->ID, '_dappcf_i_priceone', true); $internetprice = get_post_meta($post->ID, '_dappcf_i_pricetwo', true); $milage = get_post_meta($post->ID, '_dappcf_i_mileage', true); $carfaxurl = get_post_meta($post->ID, '_dappcf_i_carfaxurl', true); // Echo out the fields echo '<p>Stock #: <input type="text" name="_dappcf_i_stocknum" value="' . $stocknum . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; Milage: <input type="text" name="_dappcf_i_mileage" value="' . $milage . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; VIN: <input type="text" name="_dappcf_i_vin" value="' . $vin . '" class="widefat" style="width:200px" />'; echo '<p>Sale Price: <input type="text" name="_dappcf_i_priceone" value="' . $saleprice . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; Internet Price: <input type="text" name="_dappcf_i_pricetwo" value="' . $internetprice . '" class="widefat" style="width:80px" />'; echo '<p>CarFax url: <input type="text" name="_dappcf_i_carfaxurl" value="' . $carfaxurl . '" class="widefat" style="width:170px" />'; } // Save the Metabox Data function txpbs_save_events_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['inventorymeta_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. $station_meta['_dappcf_i_stocknum'] = $_POST['_dappcf_i_stocknum']; $station_meta['_dappcf_i_vin'] = $_POST['_dappcf_i_vin']; $station_meta['_dappcf_i_priceone'] = $_POST['_dappcf_i_priceone']; $station_meta['_dappcf_i_pricetwo'] = $_POST['_dappcf_i_pricetwo']; $station_meta['_dappcf_i_mileage'] = $_POST['_dappcf_i_mileage']; $station_meta['_dappcf_i_carfaxurl'] = $_POST['_dappcf_i_carfaxurl']; // Add values of $station_meta as custom fields foreach ($station_meta as $key => $value) { // Cycle through the $station_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', 'txpbs_save_events_meta', 1, 2); // save the custom fields 

Solutions Collecting From Web of "Как добавить меню выбора в этот код обмена?"

В основном вам нужно добавить html раскрывающегося списка select в вашу function inventory_information() которая является функцией, которая фактически отображает обмен:

 // The Event Location Metabox function inventory_information() { global $post; // Noncename needed to verify where the data originated echo '<input type="hidden" name="inventorymeta_noncename" id="inventorymeta_noncename" value="' . wp_create_nonce( plugin_basename(__FILE__) ) . '" />'; // Get the location data if its already been entered $stocknum = get_post_meta($post->ID, '_dappcf_i_stocknum', true); $vin = get_post_meta($post->ID, '_dappcf_i_vin', true); $saleprice = get_post_meta($post->ID, '_dappcf_i_priceone', true); $internetprice = get_post_meta($post->ID, '_dappcf_i_pricetwo', true); $milage = get_post_meta($post->ID, '_dappcf_i_mileage', true); $carfaxurl = get_post_meta($post->ID, '_dappcf_i_carfaxurl', true); //here you add the dropdown as value if already set so you add something like $my_dropdown = get_post_meta($post->ID, '_dappcf_i_dropdown', true); // Echo out the fields echo '<p>Stock #: <input type="text" name="_dappcf_i_stocknum" value="' . $stocknum . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; Milage: <input type="text" name="_dappcf_i_mileage" value="' . $milage . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; VIN: <input type="text" name="_dappcf_i_vin" value="' . $vin . '" class="widefat" style="width:200px" />'; echo '<p>Sale Price: <input type="text" name="_dappcf_i_priceone" value="' . $saleprice . '" class="widefat" style="width:80px" /> &nbsp;&nbsp;&nbsp; Internet Price: <input type="text" name="_dappcf_i_pricetwo" value="' . $internetprice . '" class="widefat" style="width:80px" />'; echo '<p>CarFax url: <input type="text" name="_dappcf_i_carfaxurl" value="' . $carfaxurl . '" class="widefat" style="width:170px" />'; //here you add the HTML of the dropdown you add something like echo '<p>Select menu: <select name="_dappcf_i_dropdown" class="widefat">'; echo '<option value="1"'. $my_dropdown == "1" ? ' selected="selected"' : ''. '>' . 'Option 1'. '</option>'; echo '<option value="2"'. $my_dropdown == "2" ? ' selected="selected"' : ''. '>' . 'Option 2'. '</option>'; echo '<option value="3"'. $my_dropdown == "3" ? ' selected="selected"' : ''. '>' . 'Option 3'. '</option>'; echo '<option value="4"'. $my_dropdown == "4" ? ' selected="selected"' : ''. '>' . 'Option 4'. '</option>'; //add as many as you need here echo '</select>'; } 

а затем просто добавьте это поле в функцию сохранения метабокса, которая равна txpbs_save_events_meta поэтому:

 // Save the Metabox Data function txpbs_save_events_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['inventorymeta_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. $station_meta['_dappcf_i_stocknum'] = $_POST['_dappcf_i_stocknum']; $station_meta['_dappcf_i_vin'] = $_POST['_dappcf_i_vin']; $station_meta['_dappcf_i_priceone'] = $_POST['_dappcf_i_priceone']; $station_meta['_dappcf_i_pricetwo'] = $_POST['_dappcf_i_pricetwo']; $station_meta['_dappcf_i_mileage'] = $_POST['_dappcf_i_mileage']; $station_meta['_dappcf_i_carfaxurl'] = $_POST['_dappcf_i_carfaxurl']; //here just add the dropdown field to the $station_meta array from the $_POST $station_meta['_dappcf_i_dropdown'] = $_POST['_dappcf_i_dropdown']; // Add values of $station_meta as custom fields foreach ($station_meta as $key => $value) { // Cycle through the $station_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 } } 

Надеюсь это поможет.