• Dag allen,

    Voor onze locale radiozender heeft een oud-stagiair een script uitgewerkt waardoor onze programma’s op de juiste dag verschijnen in onze kalender. De meeste zijn elke week, sommige tweewekelijks. Nu komt er een programma bij dat slechts maandelijks mag verschijnen in onze kalender. (Bijvoorbeeld telkens de eerste vrijdag van de maand).

    Ik vermoed dat ik de code heb gevonden die dat oproept. Het probleem is dat ik nergens vind hoe ik er op een correcte manier de optie ‘maandelijks’ aan kan toevoegen waarbij de post slechts om de 28 dagen verschijnt (if (($daydiff % 28) == 0)). Het is me al gelukt om een nieuw aanklikbaar vakje met ‘maandelijks’ aan te maken in de backend, maar dat heeft natuurlijk geen enkele zin als ik er geen waarde achter kan steken. Wie kan helpen? Alvast een supergrote dankjewel!! 🙂

    Dit is de code die ik vond in het document ajax.php:

    /* AJAX FUNCTIONS */
    function get_programs_by_day() {
    	$count = wp_count_posts('program');
    	$programs = get_posts(array('post_type' => 'program', 'numberposts' => $count->publish));
    	$timestamp = $_POST["timestamp"];
    	$day_of_week = date("w", $timestamp);
    	$results = array();
    	if($programs) {
    		foreach($programs as $program) {
    
    			$plays_on_selected_day = get_post_meta($program->ID, 'program_day', true) == $day_of_week ? true : false;
    
    			if($plays_on_selected_day) {
    
    				//tweewekelijks
    				if (get_post_meta($program->ID, 'program_tweewekelijks',true))
    
    				 {
    
    					$latest_date = get_post_meta($program->ID, 'program_laatst', true);
    					list($day, $month, $year) = explode('-', $latest_date); 
    
    					$latest = mktime(0, 0, 0, $month, $day, $year);
    					$now = floor(($timestamp / (60 * 60 * 24))) * 60 * 60 * 24;
    
    					$dayslatest = $latest / (60 * 60 * 24);
    					$daysnow = $now / (60 * 60 * 24);
    
    					$daydiff = $daysnow - $dayslatest;
    
    					if (($daydiff % 14) == 0) 
    
    					{
    						$still_plays = true;
    					} else {
    						$still_plays = false;
    					}
    
    				} else {
    					$still_plays = true;
    				}
    				if ($still_plays) {
    
    					$alternative_image = get_post_meta($program->ID, 'alternative-thumbnail', true);
    					if ($alternative_image != "") {
    						$image_url = wp_get_attachment_image_src($alternative_image, 'calendar-thumb');
    						$image_url = $image_url[0];
    					} else {
    						$image_id = get_post_thumbnail_id($program->ID);
    						$image_url = wp_get_attachment_image_src($image_id, 'calendar-thumb');
    						$image_url = $image_url[0];
    					}
    					$results[] = array(
    						'name' => get_the_title($program->ID),
    						'from' => substr(get_post_meta($program->ID, 'program_from', true), 0, -3),
    						'to' => substr(get_post_meta($program->ID, 'program_to', true), 0, -3),
    						'intro' => get_post_meta($program->ID, 'program_intro', true),
    						'thumbnail' => $image_url,
    						'url' => get_permalink($program->ID)
    					);
    				}
    			}
    
    			/*$plays_on_selected_day = get_post_meta($program->ID, 'program_'.$day_of_week, true);
    			if($plays_on_selected_day == 1) {
    
    				$alternative_image = get_post_meta($program->ID, 'alternative-thumbnail', true);
    				if ($alternative_image != "") {
    					$image_url = wp_get_attachment_image_src($alternative_image, 'calendar-thumb');
    					$image_url = $image_url[0];
    				} else {
    					$image_id = get_post_thumbnail_id($program->ID);
    					$image_url = wp_get_attachment_image_src($image_id, 'calendar-thumb');
    					$image_url = $image_url[0];
    				}
    
    				$results[] = array(
    					'name' => get_the_title($program->ID),
    					'from' => substr(get_post_meta($program->ID, 'program_'.$day_of_week.'_from', true), 0, -3),
    					'to' => substr(get_post_meta($program->ID, 'program_'.$day_of_week.'_to', true), 0, -3),
    					'intro' => get_post_meta($program->ID, 'program_intro', true),
    					'thumbnail' => $image_url,
    					'url' => get_permalink($program->ID)
    				);
    			}*/
    
    		}
    		usort($results, 'compare_from');
    		$results = json_encode($results);
    	} else {
    		$results = false;
    	}
    	die($results);
    }
    
    function compare_from($a, $b) {return strnatcmp($a['from'], $b['from']);}
    add_action('wp_ajax_nopriv_get_programs_by_day', 'get_programs_by_day');
    add_action('wp_ajax_get_programs_by_day', 'get_programs_by_day');
    ?>

  • Het onderwerp ‘Hoe post naast tweewekelijks ook maandelijks laten terugkeren? (ajax.php)’ is gesloten voor nieuwe reacties.