Layout – Webdesign

0,00 / maand excl. BTW

Layout kiezen / webdesign aanpassen

Ander webdesign / layout? Dat kan hier heel gemakkelijk!

  1. Gratis: Kies één van de voor geprogrammeerde layouts.
  2. Gratis: Pas je gekozen webdesign naar wens aan.
  3. Kies hier een andere gratis layout: Gratis implementatie.
  4. Kies een andere gratis layout: Vergoeding voor implementatie.
  5. Kies een betaald thema: Vergoeding voor implementatie.
  6. Laat een layout voor je maken.

Andere Layout

Ander Webdesign

Wat kunnen wij voor je doen?

Eénmalige betaling

1. Om welk webdesign gaat het (naam)
2. Waar kunnen wij het vinden
3. Als het in een account staat, mogen wij dan inlog-gegevens opdat wij het kunnen uploaden

Het verwijderen van webdesigns bespaart webruimte. Als er een webdesign extra op je website / webshop wordt gezet, dan kost dat webruimte.

Prijs per maand

Categorie:

Beschrijving

Forums / Code oplossingen gezocht / Meta informatie vanuit array opvragen

  • Goede avond allemaal,

    Ik ben bezig met het ontwikkelen van een WordPress Plugin. Het gaat om een slider plugin.
    Nu staat het grootste deel al, maar heb nog over een bepaald stuk een vraag.
    Onderstaande code (core.php) staan alle functies opgesomd. Nu werk ik ook met een stukje javascript (custom.js) om de velden te kunnen dupliceren.
    Hiervoor geef ik aan de “name” attributen een getal mee. Wanneer ik op add new row klik, wordt de input veld gedupliceerd. Nu kan ik 2 verschillende captions toevoegen. Wanneer ik op “update” in de backend klik, wordt beide meta data gesaved.

    Wat ik nu wil is dat ik beide waardes kan tonen, maar wel dat de caption aansluit bij de image die geupload wordt (hier heb ik ook nog problemen mee, ik kan namelijk maar 1 afbeelding uploaden, de velden worden wel gedupliceerd, maar krijgt overal dezelfde waarde, misschien heeft iemand hiervoor ook een oplossing?).

    Mijn code voor de slider ziet er als volgt uit, deze code is om de images in de slider te plaatsen..

    function dsslider_get_slider_markup() { 	$html = '<div class="flexslider">'; 	$html .= '<ul class="slides">'; 		// Get images and set it inside an <li> -tag 		$args = array('post_type' => 'brandbox-slider'); 		$loop = new WP_Query($args); 		if($loop->have_posts()) : while($loop->have_posts()) : $loop->the_post(); 			$images = get_post_meta(get_the_ID(), 'dsmeta_image', true); 			$image = wp_get_attachment_image_src($images[0], 'full'); // Only add [0] to variable $images 			$image = $image[0]; 			$alt = $image['title' ]; 			$html .= '<li>' . '<img src="' . $image . '" alt="' . $alt . '" />' . '</li>'; 		endwhile; 		else: 			echo '<img src="' . DSSLIDER_PATH . 'assets/images/default.jpg" alt="" />'; 		endif; 	$html .= '</ul>'; // End ul.slides unordered list 	$html .= '</div>'; // End div.flexslider 	return $html; // Return all of the generated HTML as a variable, like $html }

    Core.php

    // Begin a table row 	echo '<tr class="row">'; 	echo '<td class="order">' .$i++. '</td>'; 		foreach ($custom_meta_fields as $field) { 			// Get value of this field if it exists for this post 			$meta = get_post_meta($post->ID, $field['id'], true); 			$type = $field['type']; 			if ( ! ( $field || is_array( $field ) ) ) 				return; 			// Get field data 			$repeatable_fields = isset( $field['repeatable_fields'] ) ? $field['repeatable_fields'] : null; 			// The id and name for each field 			$id = $name = isset( $field['id'] ) ? $field['id'] : null; 			$repeatable = null; 			if ( $repeatable ) { 				$name = $repeatable[0] . '[' . $repeatable[1] . '][' . $id .']'; 				$id = $repeatable[0] . '_' . $repeatable[1] . '_' . $id; 			} // End if 			// Check if value repeatable is set 			if ($field['repeatable'] == true) { 				// Begin table data 				echo '<td>'; 					$i = 0; // Variable for repeater 					// Create an empty array 					if ( $meta == '' || $meta == array() ) { 						$keys = wp_list_pluck( $custom_meta_fields, 'id' ); 						$meta = array ( array_fill_keys( $keys, null ) ); 					} // End if 					// Return all the values of an array 					$meta = array_values( $meta ); 					// Begin each row 					foreach ($meta as $row) { 						// Markup for inside $row 						switch ($type) { 							// Image 							case 'image': 								echo 'Hello' . '<br>'; 								$image = get_template_directory_uri().'/images/image.png'; 								echo '<span class="default_image" style="display:none">' . $image . '</span>'; 								if ($meta) { 									$image = wp_get_attachment_image_src($row, 'thumbnail'); 									$image = $image[0]; 								} // End if statement 								echo '<input name="' . $field['id'] . '['.$i.']' . '" type="hidden" class="upload_image" value="' . $row . '" />'; 								echo '<img src="' . $image . '" class="preview_image" alt="" />'; 								echo '<input type="button" class="button add-image" value="Add Image">'; 								echo '<small><a href="#" class="remove-image">Remove Image</a></small>'; 							break; 							// Text 							case 'text': 								echo 'Hello' . '<br>'; 							    echo '<input type="text" name="' . $field['id'] . '['.$i.']' . '" id="' . $field['id'] . '" value="' . $row . '" class="regular-text" size="30" />'; 							break; 						} // End switch statement 						$i++; //New number added to the name array 					} // End foreach loop - row 				echo '</td>'; 			} // End if statement 		} // End foreach loop 	echo '<td class="remove"><a class="repeatable-remove button" href="#">-</a></td>'; 	echo '</tr>'; // End .row

    JS:

    jQuery(function(jQuery) { 	// Add media to post 	jQuery('.add-image').click(function() { 		formfield = jQuery(this).siblings('.upload_image'); 		preview = jQuery(this).siblings('.preview_image'); 		tb_show('', 'media-upload.php?type=image&TB_iframe=true'); 		window.send_to_editor = function(html) { 			imgurl = jQuery('img',html).attr('src'); 			classes = jQuery('img', html).attr('class'); 			id = classes.replace(/(.*?)wp-image-/, ''); 			formfield.val(id); 			preview.attr('src', imgurl); 			tb_remove(); 		} 		return false; 	}); 	// Delete uploaded image 	jQuery('.remove-image').click(function() { 		var defaultImage = jQuery(this).parent().siblings('.default_image').text(); 		jQuery(this).parent().siblings('.upload_image').val(''); 		jQuery(this).parent().siblings('.preview_image').attr('src', defaultImage); 		return false; 	}); 	// Add repeatable row 	jQuery('.repeatable-add').click(function() { alert('Hello there!'); 		// Clone row 		field = jQuery('.ui-sortable').closest('.ui-sortable').find('.row:last').clone(true); 		fieldLocation = jQuery('.ui-sortable').closest('.ui-sortable').find('.row:last'); 		jQuery('input, input.upload_image, img.preview_image', field).val('').attr('name', function(index, name) { 			return name.replace(/(\d+)/, function(fullMatch, n) { 				return Number(n) + 1; 			}); 		}) 		field.insertAfter(fieldLocation, jQuery(this).closest('.ui-sortable')) 		return false; 	}); 	// Remove repeatable row 	jQuery('.repeatable-remove').click(function(){ 		jQuery('.ui-sortable').closest('.ui-sortable').find('.row:last').remove(); 		return false; 	}); 	// Drag and drop row 	jQuery('.row').sortable({ 		opacity: 0.6, 		revert: true, 		cursor: 'move', 		handle: '.sort' 	}); });

    Ik hoor graag van jullie.

    Met vriendelijke groet,
    Casper

Het onderwerp ‘Meta informatie vanuit array opvragen’ is gesloten voor nieuwe reacties.