自定义WordPress主题:帖子的发布日期和显示日期紧挨着

时间:2014-06-26 作者:Adam

目前的情况是,对于有“更新”时间的帖子,原始发布日期和编辑日期是并排呈现的(中间没有额外的信息,甚至没有空间),我不完全确定应该在哪里解决这个问题。我需要以下方面的指导which files to look in for this output code, 或者,如果可能的话,在两个日期之间添加一两个单词的其他方式。该主题基于\\u S-这解释了为什么我不知道我想要的页面在哪里,并且这个问题仍然存在于主题的任何可以看到日期的区域(博客、搜索结果、实际帖子本身)。

我可以用CSS隐藏其中一个日期,但我肯定想显示最新的更新日期,这会让我进退两难,无法制作复杂且不必要的CSS来隐藏日期,而这些日期本可以用更好的方式来处理(我正在考虑将link display设置为none,那么:最后一个孩子的显示为true,但会影响浏览器的兼容性,而且对我来说似乎不太专业)。

Demo Of Problem

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

特别感谢RachieVee,感谢您对他们评论的支持。

我知道了如何做到这一点,所以我想我不妨将其记录下来,以供其他人将来参考。另一方面,这仅适用于_S 主题,或基于该起始模板的任何主题。

好吧,在检查完content.php 文件,我找到了<?php my_underscores_theme_name_posted_on(); ?> 其中元输出用于日期和时间信息。在做了一点挖掘之后,我遇到了my\\u Underlines\\u主题名称。pot文件-在第257至260行,写入了以下信息:

#: inc/template-tags.php:82
msgctxt "post date"
msgid "Posted on %s"
msgstr ""
我推断这是我所需要的,但它仍然太有限了。因此,我进入了第82行引用的php文件(inc/template tags.php),并将其更改为这样(对于您的情况,请将league\\u of\\u legends\\u rift替换为您的主题名称):

if ( ! function_exists( \'league_of_legends_rift_posted_on\' ) ) :
/**
 * Prints HTML with meta information for the current post-date/time and author.
 */
function league_of_legends_rift_posted_on() {
    $time_string = \'<time class="entry-date published" datetime="%1$s">%2$s</time>\';
    $time_string = $time_string;
    if ( get_the_time( \'U\' ) !== get_the_modified_time( \'U\' ) ) {
        $time_string2 = \', last updated on \';
        $time_string2 .= \'<time class="updated" datetime="%1$s">%2$s</time>\';
    }

    $time_string = sprintf( $time_string,
        esc_attr( get_the_date( \'c\' ) ),
        esc_html( get_the_date() )
    );
    $time_string2 = sprintf( $time_string2,
        esc_attr( get_the_modified_date( \'c\' ) ),
        esc_html( get_the_modified_date() )
    );

    $posted_on = sprintf(
        _x( \'Posted on %s\', \'post date\', \'league-of-legends-rift\' ),
        \'<a href="\' . esc_url( get_permalink() ) . \'" rel="bookmark">\' . $time_string . \'</a>\'.$time_string2
    );

    $byline = sprintf(
        _x( \'by %s\', \'post author\', \'league-of-legends-rift\' ),
        \'<span class="author vcard"><a class="url fn n" href="\' . esc_url( get_author_posts_url( get_the_author_meta( \'ID\' ) ) ) . \'">\' . esc_html( get_the_author() ) . \'</a></span>\'
    );

    echo \'<span class="posted-on">\' . $posted_on . \'</span><span class="byline"> \' . $byline . \'</span>\';

}
endif;
这与之前看起来略有不同,使用一个变量($time_string)可以将原始发布日期和更新日期附加在一起,从而更加精简。我使用了已经存在的逻辑,并引入了第二个变量$time\\u string2,用于存储短语和更新日期的信息。然后,我修改了$posted\\u,以包含这个新变量和我想要的格式—请注意,要编辑这个附加输出,您现在必须从这个php文件,而不是我前面引用的“.pot”文件进行编辑。

希望这对你的帮助和对我的帮助一样大!

结束

相关推荐

Featured posts and the loop

我正在尝试在索引中添加一个框。php在何处显示最新的3篇特色帖子。根据this tutorial, 我已将以下内容添加到functions.php:add_theme_support( \'featured-content\', array( \'filter\' => \'magdeleine_get_featured_posts\', \'max_posts\' => 3, ) ); function magdeleine