WordPress 5.5中不再有Get_Option(‘Date_Time’)吗?

时间:2020-08-28 作者:wittich

我使用的模板使用以下方式输出帖子的日期:

echo get_the_date( get_option( \'date_time\' ) );
我想知道为什么这个输出现在(升级到WP 5.5后)不再工作了?

快速修复正在使用该选项date_format:

echo get_the_date( get_option( \'date_format\' ) );
我调查了Wordpress开发者https://developer.wordpress.org/reference/functions/get_the_date/#source 看起来,如果“date\\u time”选项为空,它也会起作用:

function get_the_date( $format = \'\', $post = null ) {
    $post = get_post( $post );
 
    if ( ! $post ) {
        return false;
    }
 
    if ( \'\' === $format ) { // <-- check for empty value
        $the_date = get_post_time( get_option( \'date_format\' ), false, $post, true );
    } else {
        $the_date = get_post_time( $format, false, $post, true );
    }
 
    return apply_filters( \'get_the_date\', $the_date, $format, $post );
}

Why does the output of get_the_date(get_option(\'date_time\')) in the template doesnt work with Wordpress 5.5?

1 个回复
最合适的回答,由SO网友:wittich 整理而成

好吧,我发现了问题,就像我想的那样。问题是get_option( \'date_time\' ) 仅返回false.

职能发生了变化get_the_date().

在Wordpress中5.4general-template.php:

function get_the_date( $format = \'\', $post = null ) {
    $post = get_post( $post );

    if ( ! $post ) {
        return false;
    }

    if ( \'\' == $format ) {
        $the_date = get_post_time( get_option( \'date_format\' ), false, $post, true );
    } else {
        $the_date = get_post_time( $format, false, $post, true );
    }


    return apply_filters( \'get_the_date\', $the_date, $format, $post );
}
自Wordpress5.5 这个general-template.php 看起来是这样的:

function get_the_date( $format = \'\', $post = null ) {
    $post = get_post( $post );

    if ( ! $post ) {
        return false;
    }

    if ( \'\' === $format ) {
        $the_date = get_post_time( get_option( \'date_format\' ), false, $post, true );
    } else {
        $the_date = get_post_time( $format, false, $post, true );
    }

    return apply_filters( \'get_the_date\', $the_date, $format, $post );
}
区别在于类型true比较运算符

// Wordpress 5.4
if ( \'\' == $format )

// vs

// Wordpress 5.5
if ( \'\' === $format )

错误修复

我认为正确的解决方案是检查并清空或false $format. 诸如此类:

if ( \'\' === $format || false === $format )

相关推荐

类别中的计数帖子出现PHP循环错误

我的wordpress页面上有多个类别,每个类别都有1到n个子类别。如果一个子类别只包含一篇文章,我想显示这篇文章的摘录,否则我会显示类别的描述。我已经有了“的部分”;“正常”;类别,但关于;单一职位类别;。这就是我目前的情况:<?php $args = array( \'orderby\' => \'slug\', \'child_of\' => $cat_id, );