\WP_Stager_Integration\Calendar::get_nav_labels(array $args): array
\WP_Stager_Integration\Calendar::get_nav_labels(array $args): arrayDescription
Gets the navigation labels for specific calendar settings.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$args | array | The array of calendar settings. See \WP_Stager_Integration\Calendar::render_calendar() for accepted arguments. |
Returns:
array The navigation labels
Information
| File | class-calendar.php line 458 |
|---|---|
| See also |
|
Full Code
/**
* Gets the navigation labels for specific calendar settings.
*
* @param array $args The array of calendar settings. See <code>\WP_Stager_Integration\Calendar::render_calendar()</code> for accepted arguments.
*
* @return array The navigation labels
*
* @see \WP_Stager_Integration\Calendar::render_calendar() for accepted arguments.
*/
public static function get_nav_labels( $args ) {
// Type casting
$args = (array) $args;
// Get data
$scope = (string) ($args[ 'scope' ] ?? '');
$nav_label_next = (string) ($args[ 'nav_label_next' ] ?? '');
$nav_label_previous = (string) ($args[ 'nav_label_previous' ] ?? '');
$start = (int) ($args[ 'start' ] ?? 0);
$end = (int) ($args[ 'end' ] ?? 0);
switch ( $scope ) {
case 'day':
$date_format = (string) (get_option( 'date_format' ) ?: 'F j, Y');
$date_next = (string) (wp_date( $date_format, self::calculate_offset_timestamp( $end, 'P1D' ) ) ?? '');
$date_previous = (string) (wp_date( $date_format, self::calculate_offset_timestamp( $start, '-P1D' ) ) ?? '');
$nav_label_next = $nav_label_next ?: $date_next ?: __( 'Next day', 'wp-stager-integration' );
$nav_label_previous = $nav_label_previous ?: $date_previous ?: __( 'Previous day', 'wp-stager-integration' );
break;
case 'week':
$year_number_current = self::get_year_number( $start );
$timestamp_week_start = self::calculate_timestamp_week_start( $year_number_current, self::get_week_number( $start ) );
$timestamp_next_week = self::calculate_offset_timestamp( $timestamp_week_start, 'P1W' );
$timestamp_previous_week = self::calculate_offset_timestamp( $timestamp_week_start, '-P1W' );
$week_number_next = self::get_week_number( $timestamp_next_week );
$week_number_previous = self::get_week_number( $timestamp_previous_week );
$year_number_next = self::get_year_number( $timestamp_next_week );
$year_number_previous = self::get_year_number( $timestamp_previous_week );
// Define default labels
$default_nav_label_next = __( 'Next week', 'wp-stager-integration' );
$default_nav_label_previous = __( 'Previous week', 'wp-stager-integration' );
if ( $year_number_next !== $year_number_current ) {
$nav_label_next = $nav_label_next ?: sprintf( /*
* Translators:
* %1$d: A week number (1-53)
* %2$d: A four digit year number
*/__( 'Week %1$d (%2$d)', 'wp-stager-integration' ), $week_number_next, $year_number_next ) ?: $default_nav_label_next;
} else {
$nav_label_next = $nav_label_next ?: sprintf( /*
* Translators:
* %d: A week number (1-53)
*/__( 'Week %d', 'wp-stager-integration' ), $week_number_next ) ?: $default_nav_label_next;
}
if ( $year_number_previous !== $year_number_current ) {
$nav_label_previous = $nav_label_previous ?: sprintf( /*
* Translators:
* %1$d: A week number (1-53)
* %2$d: A four digit year number
*/__( 'Week %1$d (%2$d)', 'wp-stager-integration' ), $week_number_previous, $year_number_previous ) ?: $default_nav_label_previous;
} else {
$nav_label_previous = $nav_label_previous ?: sprintf( /*
* Translators:
* %d: A week number (1-53)
*/__( 'Week %d', 'wp-stager-integration' ), $week_number_previous ) ?: $default_nav_label_previous;
}
break;
case 'month':
$year_number_current = self::get_year_number( $start );
$month_number_current = self::get_month_number( $start );
$year_next_month = (12 === $month_number_current) ? $year_number_current + 1 : $year_number_current;
$year_previous_month = (1 === $month_number_current) ? $year_number_current - 1 : $year_number_current;
$month_next_month = (12 === $month_number_current) ? 1 : $month_number_current + 1;
$month_previous_month = (1 === $month_number_current) ? 12 : $month_number_current - 1;
$nav_label_next = $nav_label_next ?: self::format_month_label( $year_next_month, $month_next_month ) ?: __( 'Next month', 'wp-stager-integration' );
$nav_label_previous = $nav_label_previous ?: self::format_month_label( $year_previous_month, $month_previous_month ) ?: __( 'Previous month', 'wp-stager-integration' );
break;
case 'year':
$year_number_current = self::get_year_number( $start );
$year_number_next = $year_number_current + 1;
$year_number_previous = $year_number_current - 1;
$nav_label_next = $nav_label_next ?: $year_number_next ?: __( 'Next year', 'wp-stager-integration' );
$nav_label_previous = $nav_label_previous ?: $year_number_previous ?: __( 'Previous year', 'wp-stager-integration' );
break;
case 'event':
default:
$nav_label_next = $nav_label_next ?: __( 'Next', 'wp-stager-integration' );
$nav_label_previous = $nav_label_previous ?: __( 'Previous', 'wp-stager-integration' );
break;
}
// Define labels
$labels = array(
'next' => $nav_label_next,
'previous' => $nav_label_previous,
);
return $labels;
}💡 If you ever get stuck or have a question, please check our FAQs, our Free Integration Service, our paid Full Integration Service, or reach out to us!

Get WP Stager Integration
🎁 Limited offer: Use code WELCOME26 to get your first month for free!

