显示帖子更新日期而不是发布日期

时间:2019-03-27 作者:Benjamin Franklin

我需要一个简单的解决方案来显示更新的日期,而不是在不添加任何函数的情况下发布。我读过几篇文章,但它们使用“脏”代码有点复杂。这是我的当前代码是否可以修改此代码以显示更新日期:

    $date = sprintf( \'<span>\' . __( \'Posted\', \'theme\' ) . \' <a href="%3$s"><time class="entry-date" datetime="%1$s">%2$s</time></a></span>\',
    esc_attr( get_the_date( \'c\' ) ),
    esc_html( time_ago() ),
    esc_html( get_day_link( get_the_date(\'Y\'), get_the_date(\'m\'), get_the_date(\'d\') ) )
  );
我试过了get_the_modified_date, 但这并没有产生更新日期:

https://developer.wordpress.org/reference/functions/get_the_modified_date/

谢谢

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

get\\u修改日期应该符合您的要求。我猜您可能在使用sprintf语法方面有点困难。

 $date = sprintf( \'<span>\' . __( \'Posted\', \'theme\' ) . \' <a href="%3$s"><time class="entry-date" datetime="%1$s">%2$s</time></a></span>\',
    esc_attr( get_the_date( \'c\' ) ),
    esc_html( time_ago() ),
    esc_html( get_day_link( get_the_date(\'Y\'), get_the_date(\'m\'), get_the_date(\'d\') ) )
  );
让我们把它分解一下:

sprintf参数1-带占位符的字符串

sprintf( \'<span>\' . __( \'Posted\', \'theme\' ) . \' <a href="%3$s"><time class="entry-date" datetime="%1$s">%2$s</time></a></span>\',

这是将要构建的主字符串。它有3个占位符。然而,它们是按非传统顺序排列的。

链接(<a href=%3$s) 变量#3有一个占位符,一个字符串datetime=%1$s), 它是使时间机器可读的HTML时间元素的一部分(对于高级功能很有用,如果时间元素包含的不仅仅是实际时间),它有一个占位符作为变量#1,一个字符串>%2$s</time>) 正在查找变量#2,一个字符串

    sprintf参数2、3和4-这3个变量的值在以下函数参数中提供(同样,不是按照使用顺序):

    esc_attr( get_the_date( \'c\' ) ),
    esc_html( time_ago() ),
    esc_html( get_day_link( get_the_date(\'Y\'), get_the_date(\'m\'), get_the_date(\'d\') ) )
    
    Thefirst, 输入datetime=属性的是获取帖子的发布日期并以“c”格式输出,这是一种标准日期格式,类似于20019-03-27T15:19:21+00:00。

    这个second, 它是显示的时间,正在引用一个我无法识别的函数,名为time\\u ago()。

    这个third, 用于链接href=,根据帖子的发布日期生成链接。

    因此,要正确更改日期并仍然使用该函数,我们应该调整所有3个参数。

    $date = sprintf( \'<span>\' . __( \'Posted\', \'theme\' ) . \' <a href="%3$s"><time class="entry-date" datetime="%1$s">%2$s</time></a></span>\',
        esc_attr( get_the_modified_date( \'c\' ) ),
        esc_html( get_the_modified_date(),
        esc_url( get_day_link( get_the_modified_date(\'Y\'), get_the_modified_date(\'m\'), get_the_modified_date(\'d\') ) )
      );
    
    注意,我将第三个参数更改为esc\\u url,因为它是正在生成的url,并且可以通过传入PHP日期格式选项来调整输出日期的显示,例如get\\u the\\u modified\\u date(\'m-d-Y\')

    最后,所有这些都以HTML形式存储在$date变量中,因此在完成之前,请确保将其实际回显到页面。

相关推荐

Order by Date Custom Field

我试图按开球顺序显示即将到来的足球比赛列表。我目前的代码以正确的顺序列出了日期,但帖子的顺序不正确。<?php $previews_new_loop = array( \'posts_per_page\' => -1, \'post_type\' => \'football_match\', \'meta_key\' => \'kick-off-date\', \'orderby\'