Skip to:
Content

bbPress.org

Changeset 7099


Ignore:
Timestamp:
06/04/2020 09:57:59 PM (5 years ago)
Author:
johnjamesjacoby
Message:

Theme Compatibility: Avoid compatibility issues between MySQL versions.

This commit introduces a new function - bbp_get_empty_datetime() - which returns a valid, filterable, "empty" MySQL formatted datetime value.

This new function is used inside the theme compatibility API to ensure that global WP_Post datetime values are not "0" to better support MySQL 8 and higher, which is dropping support for NO_ZERO_DATES.

Props GDragoN.

In trunk, for 2.7.0.

See #3354.

Location:
trunk/src/includes/core
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/core/abstraction.php

    r6889 r7099  
    476476        : $filtered;
    477477}
     478
     479/** Date/Time *****************************************************************/
     480
     481/**
     482 * Get an empty datetime value.
     483 *
     484 * @since 2.6.6 bbPress (r7094)
     485 *
     486 * @return string
     487 */
     488function bbp_get_empty_datetime() {
     489
     490    // Get the database version
     491    $db_version = bbp_db()->db_version();
     492
     493    // Default return value
     494    $retval = '0000-00-00 00:00:00';
     495
     496    // Filter & return
     497    return (string) apply_filters( 'bbp_get_default_zero_date', $retval, $db_version );
     498}
  • trunk/src/includes/core/theme-compat.php

    r7072 r7099  
    365365    // Switch defaults if post is set
    366366    if ( isset( $wp_query->post ) ) {
    367         $dummy = bbp_parse_args( $args, array(
     367
     368        // Use primarily Post attributes
     369        $defaults = array(
    368370            'ID'                    => $wp_query->post->ID,
    369371            'post_status'           => $wp_query->post->post_status,
     
    396398            'is_archive'            => false,
    397399            'is_tax'                => false
    398         ), 'theme_compat_reset_post' );
     400        );
    399401    } else {
    400         $dummy = bbp_parse_args( $args, array(
     402
     403        // Get the default zero date value a single time
     404        $zero_date = bbp_get_empty_datetime();
     405
     406        // Use primarily empty attributes
     407        $defaults = array(
    401408            'ID'                    => -9999,
    402409            'post_status'           => bbp_get_public_status_id(),
     
    404411            'post_parent'           => 0,
    405412            'post_type'             => 'page',
    406             'post_date'             => 0,
    407             'post_date_gmt'         => 0,
    408             'post_modified'         => 0,
    409             'post_modified_gmt'     => 0,
     413            'post_date'             => $zero_date,
     414            'post_date_gmt'         => $zero_date,
     415            'post_modified'         => $zero_date,
     416            'post_modified_gmt'     => $zero_date,
    410417            'post_content'          => '',
    411418            'post_title'            => '',
     
    429436            'is_archive'            => false,
    430437            'is_tax'                => false
    431         ), 'theme_compat_reset_post' );
    432     }
     438        );
     439    }
     440
     441    // Parse & filter
     442    $dummy = bbp_parse_args( $args, $defaults, 'theme_compat_reset_post' );
    433443
    434444    // Bail if dummy post is empty
     
    511521            'ID'             => 0,
    512522            'post_author'    => 0,
    513             'post_date'      => 0,
     523            'post_date'      => bbp_get_empty_datetime(),
    514524            'post_content'   => bbp_buffer_template_part( 'content', 'single-user', false ),
    515525            'post_type'      => '',
     
    567577            'post_title'     => $new_title,
    568578            'post_author'    => 0,
    569             'post_date'      => 0,
     579            'post_date'      => bbp_get_empty_datetime(),
    570580            'post_content'   => $new_content,
    571581            'post_type'      => bbp_get_forum_post_type(),
     
    583593            'post_title'     => bbp_get_forum_title(),
    584594            'post_author'    => bbp_get_forum_author_id(),
    585             'post_date'      => 0,
     595            'post_date'      => bbp_get_empty_datetime(),
    586596            'post_content'   => $bbp_shortcodes->display_forum_form(),
    587597            'post_type'      => bbp_get_forum_post_type(),
     
    601611            'post_title'     => bbp_get_forum_title(),
    602612            'post_author'    => bbp_get_forum_author_id(),
    603             'post_date'      => 0,
     613            'post_date'      => bbp_get_empty_datetime(),
    604614            'post_content'   => $bbp_shortcodes->display_forum( array( 'id' => bbp_get_forum_id() ) ),
    605615            'post_type'      => bbp_get_forum_post_type(),
     
    640650            'post_title'     => bbp_get_topic_archive_title(),
    641651            'post_author'    => 0,
    642             'post_date'      => 0,
     652            'post_date'      => bbp_get_empty_datetime(),
    643653            'post_content'   => $new_content,
    644654            'post_type'      => bbp_get_topic_post_type(),
     
    676686            'post_title'     => bbp_get_topic_title(),
    677687            'post_author'    => bbp_get_topic_author_id(),
    678             'post_date'      => 0,
     688            'post_date'      => bbp_get_empty_datetime(),
    679689            'post_content'   => $new_content,
    680690            'post_type'      => bbp_get_topic_post_type(),
     
    694704            'post_title'     => esc_html__( 'Replies', 'bbpress' ),
    695705            'post_author'    => 0,
    696             'post_date'      => 0,
     706            'post_date'      => bbp_get_empty_datetime(),
    697707            'post_content'   => $bbp_shortcodes->display_reply_index(),
    698708            'post_type'      => bbp_get_reply_post_type(),
     
    726736            'post_title'     => bbp_get_reply_title(),
    727737            'post_author'    => bbp_get_reply_author_id(),
    728             'post_date'      => 0,
     738            'post_date'      => bbp_get_empty_datetime(),
    729739            'post_content'   => $new_content,
    730740            'post_type'      => bbp_get_reply_post_type(),
     
    743753            'post_title'     => bbp_get_view_title(),
    744754            'post_author'    => 0,
    745             'post_date'      => 0,
     755            'post_date'      => bbp_get_empty_datetime(),
    746756            'post_content'   => $bbp_shortcodes->display_view( array( 'id' => get_query_var( bbp_get_view_rewrite_id() ) ) ),
    747757            'post_type'      => '',
     
    760770            'post_title'     => bbp_get_search_title(),
    761771            'post_author'    => 0,
    762             'post_date'      => 0,
     772            'post_date'      => bbp_get_empty_datetime(),
    763773            'post_content'   => $bbp_shortcodes->display_search( array( 'search' => get_query_var( bbp_get_search_rewrite_id() ) ) ),
    764774            'post_type'      => '',
     
    789799            'ID'             => 0,
    790800            'post_author'    => 0,
    791             'post_date'      => 0,
     801            'post_date'      => bbp_get_empty_datetime(),
    792802            'post_content'   => $new_content,
    793803            'post_type'      => '',
Note: See TracChangeset for help on using the changeset viewer.