editing future posts calendar
-
i’m using this plugin (https://anthologyoi.com/wordpress/plugins/future-posts-calendar-plugin.html) to highlight the dates on the calendar of future posts i plan to make. you can see an example here in the left nav bar: https://www.goldcoastchamber.com/
however, i’d like to limit it to only display future posts set for the current month. any idea who to do that? below is the code from the plugin. fyi, i know little to nothing about php.
please advise. thanks!
/*Uncomment the following line if you want to have the calendar appear on the dashboard.*/ //add_action('activity_box_end', 'get_future_calendar_html'); if (strpos($_SERVER['PHP_SELF'], 'post')){ if($wp_version < 2.5){ add_action('dbx_post_sidebar', 'get_future_calendar_html',2); }else{ add_action('submitpost_box', 'get_future_calendar_html'); } add_action('admin_head', 'fcal_javascript'); } // This gets called at the plugins_loaded action function widget_fut_posts_init() { // Check for the required API functions if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') ) return; // This saves options and prints the widget's config form. function widget_fut_posts_control() { $options = $newoptions = get_option('widget_fut_posts'); if ( $_POST['fut_posts-submit'] ) { $newoptions['title'] = strip_tags(stripslashes($_POST['fut_posts-title'])); } if ( $options != $newoptions ) { $options = $newoptions; update_option('widget_fut_posts', $options); } ?> <div style="text-align:right"> <label for="fut_posts-title" style="line-height:35px;display:block;"><?php _e('Widget title:', 'widgets'); ?> <input type="text" id="fut_posts-title" name="fut_posts-title" value="<?php echo wp_specialchars($options['title'], true); ?>" /></label> <input type="hidden" name="fut_posts-submit" id="fut_posts-submit" value="1" /> </div> <?php } // This prints the widget function widget_fut_posts($args) { extract($args); $defaults = array('title' => 'Future Posts'); $options = (array) get_option('widget_fut_posts'); foreach ( $defaults as $key => $value ) if ( !isset($options[$key]) ) $options[$key] = $defaults[$key]; echo $before_widget . $before_title . $options['title'] . $after_title; fcal_get_future_posts(0); echo $after_widget; } register_sidebar_widget('Future Posts', 'widget_fut_posts'); register_widget_control('Future Posts', 'widget_fut_posts_control'); } // Delay plugin execution to ensure Dynamic Sidebar has a chance to load first add_action('widgets_init', 'widget_fut_posts_init'); function future_post_sidebar(){ $title = __('Future Post','fcal'); echo '<div>' . '<h3>' . $title . '</h3>'; fcal_get_future_posts(); echo '</div>'; } function fcal_javascript(){ echo ' <script type="text/javascript"> function fcal_set_date(day,month,year){ if(day > 0 && month <= 12 && month >= 0 && year > 0){ document.getElementById("jj").value = day; document.getElementById("aa").value = year; document.getElementsByName("mm")[0].selectedIndex = month; } } </script> '; } function get_future_calendar_html(){ global $wp_version; if($wp_version < 2.5){ echo '<fieldset id="future_cal" class="dbx-box side-info">'; echo '<h3 class="dbx-handle">'.__('Future Post Dates','fcal').'</h3>'; echo '<div class="dbx-content">'; fcal_get_future_posts(); echo '</div></fieldset>'; }else{ echo '<div class="inside">'; echo '<p><strong>'.__('Future Post Dates','fcal').'</strong></p>'; fcal_get_future_posts(); echo '</div>'; } } function fcal_get_future_posts($onclick = 1){ global $wpdb, $wp_locale; $thisyear = gmdate('Y', current_time('timestamp')); $thismonth = gmdate('m', current_time('timestamp')); // Quick check. If we have no posts at all, abort! if ( !$posts ) { $gotsome = $wpdb->get_var("SELECT ID from $wpdb->posts WHERE post_type = 'post' AND post_status = 'future' ORDER BY post_date DESC LIMIT 1"); if ( !$gotsome ){ get_future_calendar($thismonth,$thisyear,$onclick); return; } } get_future_calendar($thismonth,$thisyear,$onclick); //Technically thismonth is really nextmonth, but no reason to be technical about it //But if thismonth is 12 then we need to reset it, and add a year otherwise we will be checking // out the 13th month of this year. if($thismonth == 12){ $thismonth = 0; $thisyear +=1; } // Get months this year and next with at least one post $future = $wpdb->get_results("SELECT DISTINCT MONTH(post_date) AS month, YEAR(post_date) AS year FROM $wpdb->posts WHERE post_date >'$thisyear-".($thismonth+1)."-01' AND post_type = 'post' AND post_status = 'future' ORDER BY post_date ASC"); foreach($future as $now){ get_future_calendar($now->month,$now->year); } } // Calendar Output... function get_future_calendar( $thismonth ='', $thisyear='', $onclick=1, $initial=true ) { global $wpdb, $timedifference, $wp_locale; $unixmonth = mktime(0, 0 , 0, $thismonth, 1, $thisyear); // week_begins = 0 stands for Sunday $week_begins = intval(get_option('start_of_week')); $add_hours = intval(get_option('gmt_offset')); $add_minutes = intval(60 * (get_option('gmt_offset') - $add_hours)); echo '<table class="wp-calendar"> <caption><em>' . $wp_locale->get_month($thismonth) . ' ' . $thisyear . '</em></caption> <thead> <tr>'; $myweek = array(); for ( $wdcount=0; $wdcount<=6; $wdcount++ ) { $myweek[] = $wp_locale->get_weekday(($wdcount+$week_begins)%7); } foreach ( $myweek as $wd ) { $day_name = (true == $initial) ? $wp_locale->get_weekday_initial($wd) : $wp_locale->get_weekday_abbrev($wd); echo "\n\t\t<th abbr=\"$wd\" scope=\"col\" title=\"$wd\">$day_name</th>"; } echo ' </tr> </thead> <tbody> <tr>'; // Get days with posts $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date) FROM $wpdb->posts WHERE MONTH(post_date) = '$thismonth' AND YEAR(post_date) = '$thisyear' AND post_type = 'post' AND post_status = 'future' AND post_date > '" . current_time('mysql') . '\'', ARRAY_N); if ( $dayswithposts ) { foreach ( $dayswithposts as $daywith ) { $daywithpost[] = $daywith[0]; } } else { $daywithpost = array(); } if ( strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'camino') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'safari') ) $ak_title_separator = "\n"; else $ak_title_separator = ', '; $ak_titles_for_day = array(); //sets the Density Thermometer $ak_posts_for_day = array(); $ak_post_titles = $wpdb->get_results("SELECT post_title, DAYOFMONTH(post_date) as dom " ."FROM $wpdb->posts " ."WHERE YEAR(post_date) = '$thisyear' " ."AND MONTH(post_date) = '$thismonth' " ."AND post_date > '".current_time('mysql')."' " ."AND post_type = 'post' AND post_status = 'future'" ); if ( $ak_post_titles ) { foreach ( $ak_post_titles as $ak_post_title ) { if ( empty($ak_titles_for_day['day_'.$ak_post_title->dom]) ) $ak_titles_for_day['day_'.$ak_post_title->dom] = ''; if ( empty($ak_titles_for_day["$ak_post_title->dom"]) ) // first one $ak_titles_for_day["$ak_post_title->dom"] = str_replace('"', '"', wptexturize($ak_post_title->post_title)); else $ak_titles_for_day["$ak_post_title->dom"] .= $ak_title_separator . str_replace('"', '"', wptexturize($ak_post_title->post_title)); $ak_posts_for_day["$ak_post_title->dom"] +=1; } } // See how much we should pad in the beginning $pad = calendar_week_mod(date('w', $unixmonth)-$week_begins); if ( 0 != $pad ) { echo "\n\t\t".'<td colspan="'.$pad.'" class="pad"> </td>'; } //Determines the Density Thermometer colors $thermo = Array( "#286EA0", "#7AFFDE", "#2FEEFF", "#108BFF", "#0E72FF" ); $daysinmonth = intval(date('t', $unixmonth)); for ( $day = 1; $day <= $daysinmonth; ++$day ) { if ( isset($newrow) && $newrow ) echo "\n\t</tr>\n\t<tr>\n\t\t"; $newrow = false; if ( $day == gmdate('j', (time() + (get_option('gmt_offset') * 3600))) && $thismonth == gmdate('m', time()+(get_option('gmt_offset') * 3600)) && $thisyear == gmdate('Y', time()+(get_option('gmt_offset') * 3600)) ) echo '<td style="font-weight:bold;">'; else echo '<td>'; if($onclick == 1){ $onclick1 = 'onclick="fcal_set_date('.$day.','.($thismonth-1).','.$thisyear.')"'; } // any posts on that day? if ( in_array($day, $daywithpost) ) { //Outputs the Density Thermometer along with the day... echo '<span style="background-color:'.($ak_posts_for_day[$day]<=Count($thermo) ? $thermo[$ak_posts_for_day[$day]-1] : $thermo[Count($thermo)-1]).';" title="'.$ak_titles_for_day[$day].' '.$onclick1.'" >'.$day.''; } else { echo '<span '.$onclick1.' >'.$day.'</span>'; } echo '</td>'; if ( 6 == calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins) ) $newrow = true; } $pad = 7 - calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins); if ( $pad != 0 && $pad != 7 ) echo "\n\t\t".'<td class="pad" colspan="'.$pad.'"> </td>'; echo "\n\t</tr>\n\t</tbody>\n\t</table>"; } ?>
Viewing 3 replies - 1 through 3 (of 3 total)
Viewing 3 replies - 1 through 3 (of 3 total)
- The topic ‘editing future posts calendar’ is closed to new replies.