true, 'options' => array(), ) ); return $field; } /** * Get field names of object to be used by walker * * @return array */ public static function get_db_fields() { return array( 'parent' => 'parent', 'id' => 'value', 'label' => 'label', ); } /** * Get options for walker * * @param array $field * * @return array */ public static function get_options( $field ) { $options = array(); foreach ( (array) $field['options'] as $value => $label ) { $option = is_array( $label ) ? $label : array( 'label' => (string) $label, 'value' => (string) $value ); if ( isset( $option['label'] ) && isset( $option['value'] ) ) $options[$option['value']] = (object) $option; } return $options; } /** * Output the field value * Display unordered list of option labels, not option values * * @param array $field Field parameters * @param array $args Additional arguments. Not used for these fields. * @param int|null $post_id Post ID. null for current post. Optional. * * @return string Link(s) to post */ public static function the_value( $field, $args = array(), $post_id = null ) { $field_class = MASHSB_RW_Meta_Box::get_class_name( $field ); $value = call_user_func( array( $field_class, 'get_value' ), $field, $args, $post_id ); if ( ! $value ) return ''; if ( $field['clone'] && $field['multiple'] ) { $output = ''; } elseif ( $field['clone'] || $field['multiple'] ) { $output = call_user_func( array( $field_class, 'list_option_labels' ), $value, $field ); } else { $output = $field['options'][$value]['label']; } return $output; } /** * List option labels * * @param array $meta * @param array $field Field parameter * @return string */ public static function list_option_labels( $meta, $field ) { $field_class = MASHSB_RW_Meta_Box::get_class_name( $field ); $output = ''; } /** * Get option label * * @param string $value Option value * @param array $field Field parameter * * @return string */ public static function get_option_label( $value, $field ) { $options = call_user_func( array( MASHSB_RW_Meta_Box::get_class_name( $field ), 'get_options' ), $field ); return $options[$value]->label; } }