Support

Account

Forum Replies Created

  • I tried plugging in the for loop and it seemed to stop working. It looked like this:

    				//Fetch the gallery for the selected post
    				$gallery = get_field('gallery', $post_id);
    				if($gallery){
    					//loop through the images in the gallery
    					for($i = 0; $i > count($gallery); $i++){ 
    						$gallery[$i]['constrain'] = get_field('constrain', $gallery[$i]['id']);
    					}
    				}

    I have a working model, but since you suggested it I wanted to try it.

  • Awesome, thanks for explaining that. And I’ll switch that over to the for loop. It seems a lot cleaner.

    Thanks again for all of your help!

  • Ok, it appears to be working. I changed your loop to look like this:

    //Fetch the gallery for the selected post
    $gallery = get_field('gallery', $post_id);
    if($gallery){
    	$i = 0;
    	foreach($gallery as $image){ //loop through the images in the gallery
    		
    		$gallery[$i]['constrain'] = get_field('constrain', $gallery[$i]['id']);
    		$i++;
    	}
    }

    Thanks for all of the help!

  • I decided to take a step back and try to hard code an example that would work for one image. I successfully got this to work:

    $gallery[0][‘constrain’] = get_field(‘constrain’, $gallery[0][‘id’]);

    Now I need to figure out how increment that ‘0’ in the loop for each image I have. If you have any ideas, let me know. And thanks so much for all of your help!

  • Wow, thanks! I thought this was going to work, and it has to be close. It appears that it isn’t even getting into the foreach loop. I hardcoded a value for an attachment and also just tried to get it to append the ‘constrain’ property, but no luck.

    When the array comes back it looks like the attached image (this was without modifying your code at all).

  • Thanks. I had tried this before, but the problem is that I am creating a javascript array from the data. If I were to use what you intended I would need to be able to do the equivalent from JS rather than php. That’s why I thought it would be easier to put the data in the array rather than making multiple ajax requests.

    Below is the function that is called via ajax. The function returns a json object that I then pull the values from and apply to a mustache template.

    			function buildGallery(){
    				$post_title = $_REQUEST['post_title'];
    				if($post_title){
    					$work = new WP_Query( array(
    				        'post_type' => 'work',
    				        'post_status' => 'publish',
    				        'numberposts' => '-1',
    				        'order' => 'asc',
    				        'name' => $post_title 
    				    	)
    				    );
    				    foreach ($work->posts as $work_post) {
    			        	$post_id = $work_post->ID;
    			    	}
    				}else{
    					//get the data from ajax() call
    					$post_id = $_REQUEST['post_id'];
    				}
    				$gallery_item = array(
    			        "gallery_item" => array()
    			    );
    
    				global $post;
    				$post = get_post($post_id);
    
    				$previous_post = get_previous_post();
    				$next_post = get_next_post();
    				array_push($gallery_item['gallery_item'], array(
    		            "images" => get_field('gallery', $post_id),
    		            "title" => get_the_title($post_id),
    		            "content" => apply_filters( 'the_content', get_post_field('post_content', $post_id)),
    		            "nextLink" => $next_post,
    		            "prevLink" => $previous_post,
    		            "id" => $post_id,
    		            "postName" => $post->post_name,
    		            "company" => get_field('company', $post_id),
    		            "tags" => wp_get_post_tags($post_id)
    		        ));
    				// Return the String
    				die(json_encode($gallery_item));
    			}

    The images are added here: “images” => get_field(‘gallery’, $post_id),

    I am having a hard time getting my head around how to add the other field into that piece of the array.

Viewing 6 posts - 1 through 6 (of 6 total)