我基本上整晚都在做这件事,我意识到我被卡住了。
我的wordpress主题中有一个侧边栏,显示最近的帖子。侧栏如下所示:
在每个标题下,我想以“相对样式”显示发布日期,例如“两天前发布”。
我知道<?php echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\'; ?>
将生成相对日期,但我不知道如何在我已有的相同代码中实现它。
我还需要能够样式与自定义CSS这个日期戳。
This is the php I have for the sidebar:
<?php
$args = array( \'post_status\' => \'publish\', \'numberposts\' => \'30\', \'tax_query\' => array(
array(
\'taxonomy\' => \'post_format\',
\'field\' => \'slug\',
\'terms\' => \'post-format-aside\',
\'operator\' => \'NOT IN\'
),
array(
\'taxonomy\' => \'post_format\',
\'field\' => \'slug\',
\'terms\' => \'post-format-image\',
\'operator\' => \'NOT IN\'
)
) );
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo \'<div class="sidebar-entries">\';
echo get_the_post_thumbnail( $recent[\'ID\'], \'sidebar-thumb\', array( \'class\' => \'sidebar-image\' ) );
echo \'<div class="sidebar-entries-title">\';
echo \'<a href="\' . get_permalink($recent["ID"]) . \'">\' . ( __($recent["post_title"])).\'</a></div></div> \';
// echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\';
}
?>
最合适的回答,由SO网友:darrinb 整理而成
您不会使用生成WP循环wp_get_recent_posts()
所以get_the_time()
不会取消发布日期。发布日期在阵列中可用wp_get_recent_posts()
尽管返回:$recent[\'post_date\']
. 也可以使用修改后的日期:$recent[\'post_modified\']
.
这项工作(在我的开发网站上测试):
<?php
$args = array(
\'post_status\' => \'publish\',
\'numberposts\' => \'30\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'post_format\',
\'field\' => \'slug\',
\'terms\' => \'post-format-aside\',
\'operator\' => \'NOT IN\'
),
array(
\'taxonomy\' => \'post_format\',
\'field\' => \'slug\',
\'terms\' => \'post-format-image\',
\'operator\' => \'NOT IN\'
)
)
);
$recent_posts = wp_get_recent_posts( $args );
?>
<div class="sidebar-entries">
<?php
foreach( $recent_posts as $recent ){
echo \'<div class="sidebar-entry">\';
echo get_the_post_thumbnail( $recent[\'ID\'], \'sidebar-thumb\', array( \'class\' => \'sidebar-image\' ) );
echo \'<div class="sidebar-entries-title">\';
echo \'<a href="\' . get_permalink( $recent["ID"] ) . \'">\' . __( $recent["post_title"] ) . \'</a>\';
echo \'<span class="posted-on">\' . human_time_diff( strtotime( $recent[\'post_date\'] ), current_time(\'timestamp\') ) . \' ago </span>\';
echo \'</div>\';
echo \'</div>\';
}
?>
</div>
(不过需要注意的是,不要只是从Codex中复制/粘贴代码。如果不需要其中的分类参数,请不要将其包含在内。)
SO网友:Owais Alam
您可以通过编辑模板标记来实现这一点。inc目录中的php。
查找:
sprintf( \'<a class="entry-date" href="%s">%s</a>\', esc_url( get_permalink() ), $output_time )
替换:
sprintf( \'<a class="entry-date" href="%s">%s</a>\', esc_url( get_permalink() ), $regular_time )
查找:
sprintf( \'<a class="entry-date" href="%s">%s</a>\', esc_url( get_permalink() ), $output_time ),
替换:
sprintf( \'<a class="entry-date" href="%s">%s</a>\', esc_url( get_permalink() ), $regular_time ),