Using WordPress ‘get_calendar()’ PHP function

The get_calendar() WordPress PHP function displays a calendar with days that have posts as links.

Usage

get_calendar($initial = true, $display = true);

Parameters

  • $initial (bool) – Optional. Whether to use initial calendar names. Default: true.
  • $display (bool) – Optional. Whether to display the calendar output. Default: true.

More information

See WordPress Developer Resources: get_calendar()

Examples

Display a calendar with full month names

Display a calendar with full month names instead of initials.

get_calendar(false);

Store calendar output in a variable

Store the calendar output in a variable $calendar instead of directly displaying it.

$calendar = get_calendar(true, false);

Display calendar with a custom CSS class

Add a custom CSS class to the calendar by wrapping the get_calendar() function in a div element.

<div class="custom-calendar">
    <?php get_calendar(); ?>
</div>

Display multiple calendars for different months

Display multiple calendars by using the get_calendar() function inside a loop and filtering posts by month.

for ($month = 1; $month <= 12; $month++) {
    query_posts("monthnum=$month&year=2023");
    get_calendar();
    wp_reset_query();
}

Display calendar in a custom widget

Create a custom widget to display the calendar using the get_calendar() function.

class Custom_Calendar_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'custom_calendar_widget',
            'Custom Calendar',
            array('description' => 'A custom calendar widget')
        );
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        echo $args['before_title'] . 'Calendar' . $args['after_title'];
        get_calendar();
        echo $args['after_widget'];
    }
}

function register_custom_calendar_widget() {
    register_widget('Custom_Calendar_Widget');
}

add_action('widgets_init', 'register_custom_calendar_widget');