Add "Posted on" to post date

时间:2016-03-11 作者:TrinityP

如何在214个主题的帖子中的帖子数据之前添加“post on”字样?默认值仅显示日期和时钟图标。

我不确定这是否是一个基本的修改,或者它是否将是一个独特的修复到第214。

我发现this web page 谈到删除第211个主题中的“发布”文本(我希望主题类似)。它说要查看函数。php文件function twentyeleven_posted_on() 但我在214个父主题的函数中找不到类似的东西。php文件。在214项功能中,似乎没有任何与帖子日期直接相关的内容。php文件。

我使用的是一个子主题,所以我假设我可能会在子主题的函数中加入一个经过修改的函数。php文件,但我在Twentfourteen中找不到原始函数。

我之所以问这个问题,是因为214年,只有日期的默认设置让我的一些读者感到困惑;当帖子谈论一个事件时,他们认为帖子日期就是事件的日期。

解决方案(感谢TomWoodward和DaveClements)

Tom和DaveClements的函数都起作用了,但一开始它们都没有起作用,因为我将新函数放在?> 这是PHP的结束标记,下面没有代码。

这是我现有的子主题的功能。php文件(基本上是从Wordpress support guide on setting up a child theme)

<?php
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
function theme_enqueue_styles() {
wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );
}

?>
我需要在上一个} 和底部?>

<?php
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
function theme_enqueue_styles() {
wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );
}

function add_publish_dates( $the_date, $d, $post ) {
if ( is_int( $post) ) {
$post_id = $post;
} else {
$post_id = $post->ID;
}

return \'Posted on \'. date( \'Y-d-m - h:j:s\', strtotime( $the_date ) );
}
add_action( \'get_the_date\', \'add_publish_dates\', 10, 3 );

?>
我最终使用了汤姆·伍德沃德的代码,因为它把小时钟图标放在了“发布时间”之前,而戴夫·克莱门特把它放在了“发布时间”之后,介于它和日期之间,这看起来很奇怪。

然后我更改了之后日期的日期格式return \'Posted on \'. date 从…起\'Y-d-m - h:j:s\' (显示日期为2016-16-03-12:00:00[奇怪的是,总是说它是在上午12点发布的,而当时帖子没有发布])到\'F j, Y\' (显示默认值“2016年3月16日”)

<?php
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
function theme_enqueue_styles() {
wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );
}

function add_publish_dates( $the_date, $d, $post ) {
if ( is_int( $post) ) {
$post_id = $post;
} else {
$post_id = $post->ID;
}

return \'Posted on \'. date( \'F j, Y\', strtotime( $the_date ) );
}
add_action( \'get_the_date\', \'add_publish_dates\', 10, 3 );

?>
正如我所说,我最终使用了TomWoodward的代码作为基础,但DaveClements的代码完全按照我的要求执行(只是不完全符合我的要求),他解决了?> 这对我来说是个问题,所以我告诉Dave重点。但非常感谢汤姆和戴夫!

2 个回复
最合适的回答,由SO网友:Dave Clements 整理而成

发布日期由添加twentyfourteen_posted_on 如所示content.php. 此函数位于/inc/template-tags.php 并正确包装在if ( ! function_exists( \'twentyfourteen_posted_on\' ) ) 有条件的,这样您就可以在子主题中声明相同的函数,并根据自己的内心内容对其进行修改。

因此,您可以将这样的函数添加到主题的函数中。php文件,这应该可以做到(注意在printf 功能:

function twentyfourteen_posted_on() {
        if ( is_sticky() && is_home() && ! is_paged() ) {
                echo \'<span class="featured-post">\' . __( \'Sticky\', \'twentyfourteen\' ) . \'</span>\';
        }

        // Set up and print post meta information.
        printf( \'Posted on <span class="entry-date"><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5$s</a></span></span>\',
                esc_url( get_permalink() ),
                esc_attr( get_the_date( \'c\' ) ),
                esc_html( get_the_date() ),
                esc_url( get_author_posts_url( get_the_author_meta( \'ID\' ) ) ),
                get_the_author()
        );
}

SO网友:Tom Woodward

我看了一下文件here 这个过滤器似乎在2014年可以使用。

function add_publish_dates( $the_date, $d, $post ) {
if ( is_int( $post) ) {
    $post_id = $post;
} else {
    $post_id = $post->ID;
}

return \'Posted on \'. date( \'Y-d-m - h:j:s\', strtotime( $the_date ) );
}
add_action( \'get_the_date\', \'add_publish_dates\', 10, 3 );