get_default_comment_status

The timeline below displays how wordpress function get_default_comment_status has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Gets the default comment status for a post type.
 *
 * @since 4.3.0
 *
 * @param string $post_type    Optional. Post type. Default 'post'.
 * @param string $comment_type Optional. Comment type. Default 'comment'.
 * @return string Either 'open' or 'closed'.
 */
function get_default_comment_status($post_type = 'post', $comment_type = 'comment')
{
    switch ($comment_type) {
        case 'pingback':
        case 'trackback':
            $supports = 'trackbacks';
            $option = 'ping';
            break;
        default:
            $supports = 'comments';
            $option = 'comment';
            break;
    }
    // Set the status.
    if ('page' === $post_type) {
        $status = 'closed';
    } elseif (post_type_supports($post_type, $supports)) {
        $status = get_option("default_{$option}_status");
    } else {
        $status = 'closed';
    }
    /**
     * Filters the default comment status for the given post type.
     *
     * @since 4.3.0
     *
     * @param string $status       Default status for the given post type,
     *                             either 'open' or 'closed'.
     * @param string $post_type    Post type. Default is `post`.
     * @param string $comment_type Type of comment. Default is `comment`.
     */
    return apply_filters('get_default_comment_status', $status, $post_type, $comment_type);
}

WordPress Version: 5.3

/**
 * Gets the default comment status for a post type.
 *
 * @since 4.3.0
 *
 * @param string $post_type    Optional. Post type. Default 'post'.
 * @param string $comment_type Optional. Comment type. Default 'comment'.
 * @return string Expected return value is 'open' or 'closed'.
 */
function get_default_comment_status($post_type = 'post', $comment_type = 'comment')
{
    switch ($comment_type) {
        case 'pingback':
        case 'trackback':
            $supports = 'trackbacks';
            $option = 'ping';
            break;
        default:
            $supports = 'comments';
            $option = 'comment';
            break;
    }
    // Set the status.
    if ('page' === $post_type) {
        $status = 'closed';
    } elseif (post_type_supports($post_type, $supports)) {
        $status = get_option("default_{$option}_status");
    } else {
        $status = 'closed';
    }
    /**
     * Filters the default comment status for the given post type.
     *
     * @since 4.3.0
     *
     * @param string $status       Default status for the given post type,
     *                             either 'open' or 'closed'.
     * @param string $post_type    Post type. Default is `post`.
     * @param string $comment_type Type of comment. Default is `comment`.
     */
    return apply_filters('get_default_comment_status', $status, $post_type, $comment_type);
}

WordPress Version: 4.6

/**
 * Gets the default comment status for a post type.
 *
 * @since 4.3.0
 *
 * @param string $post_type    Optional. Post type. Default 'post'.
 * @param string $comment_type Optional. Comment type. Default 'comment'.
 * @return string Expected return value is 'open' or 'closed'.
 */
function get_default_comment_status($post_type = 'post', $comment_type = 'comment')
{
    switch ($comment_type) {
        case 'pingback':
        case 'trackback':
            $supports = 'trackbacks';
            $option = 'ping';
            break;
        default:
            $supports = 'comments';
            $option = 'comment';
    }
    // Set the status.
    if ('page' === $post_type) {
        $status = 'closed';
    } elseif (post_type_supports($post_type, $supports)) {
        $status = get_option("default_{$option}_status");
    } else {
        $status = 'closed';
    }
    /**
     * Filters the default comment status for the given post type.
     *
     * @since 4.3.0
     *
     * @param string $status       Default status for the given post type,
     *                             either 'open' or 'closed'.
     * @param string $post_type    Post type. Default is `post`.
     * @param string $comment_type Type of comment. Default is `comment`.
     */
    return apply_filters('get_default_comment_status', $status, $post_type, $comment_type);
}

WordPress Version: 4.3

/**
 * Gets the default comment status for a post type.
 *
 * @since 4.3.0
 *
 * @param string $post_type    Optional. Post type. Default 'post'.
 * @param string $comment_type Optional. Comment type. Default 'comment'.
 * @return string Expected return value is 'open' or 'closed'.
 */
function get_default_comment_status($post_type = 'post', $comment_type = 'comment')
{
    switch ($comment_type) {
        case 'pingback':
        case 'trackback':
            $supports = 'trackbacks';
            $option = 'ping';
            break;
        default:
            $supports = 'comments';
            $option = 'comment';
    }
    // Set the status.
    if ('page' === $post_type) {
        $status = 'closed';
    } elseif (post_type_supports($post_type, $supports)) {
        $status = get_option("default_{$option}_status");
    } else {
        $status = 'closed';
    }
    /**
     * Filter the default comment status for the given post type.
     *
     * @since 4.3.0
     *
     * @param string $status       Default status for the given post type,
     *                             either 'open' or 'closed'.
     * @param string $post_type    Post type. Default is `post`.
     * @param string $comment_type Type of comment. Default is `comment`.
     */
    return apply_filters('get_default_comment_status', $status, $post_type, $comment_type);
}