从WordPress注释日期中删除“at”字符串

时间:2019-03-15 作者:n1kkou

我使用以下代码格式化作者的评论日期并删除时间:

function my_change_comment_date_format( $date, $date_format, $comment ) {
    return date( \'d M Y\', strtotime( $comment->comment_date ) );
}
add_filter( \'get_comment_date\', \'my_change_comment_date_format\', 10, 3 );

function wpb_remove_comment_time($date, $d, $comment) { 
    if ( !is_admin() ) {
            return;
    } else { 
            return $date;
    }
}
add_filter( \'get_comment_time\', \'wpb_remove_comment_time\', 10, 3);
但现在,我得到的是以下格式:
14 Mar 2013 at

如何删除日期末尾的“at”字符串?

1 个回复
SO网友:Cubakos

“at”很可能来自$comment->comment_date. 如果是这样的话,由于我们必须处理字符串,您可以从str_replace 首先,为了删除“at”,例如:

function my_change_comment_date_format( $date, $date_format, $comment ) {
    return date( \'d M Y\', strtotime( str_replace(" at", "", $comment->comment_date) ); );
}
Edit: 由于上述情况并非如此,我搜索了一下,得到了以下信息:

在您的comments.php 您可能需要调用的模板wp_list_comments(), 不带参数的defaults . 默认参数之一是\'walker\' => new Walker_Comment() 它构造了注释的html输出。查看Walker_Comment class, 300线附近是“at”的罪魁祸首printf( __( \'%1$s at %2$s\' ), get_comment_date( \'\', $comment ), get_comment_time() );, 从而摆脱get_comment_time() 仍将在打印。

要更改输出,可以使用回调函数,该函数传递给wp_list_comments()

e、 g:1)在comments.php (或在要显示注释的任何其他模板文件中)

<?php
// Show comments
wp_list_comments( array(
    \'callback\' => \'not_default_comments\'
) );
?>
2)在您的functions.php (或在函数中包含的单独文件中)编写回调代码:

<?php
function not_default_comments( $comment, $args, $depth ) {
    global $post;
    $author_id = $post->post_author;
    $GLOBALS[\'comment\'] = $comment;
?>
    <li id="li-comment-<?php comment_ID(); ?>">
        <article id="comment-<?php comment_ID(); ?>" <?php comment_class(\'clr\'); ?>>
            <div class="comment-author vcard">
                <?php echo get_avatar( $comment, 45 ); ?>
            </div><!-- .comment-author -->
            <div class="comment-details clr">
                <header class="comment-meta">
                    <cite class="fn"><?php comment_author_link(); ?></cite>
                    <span class="comment-date">
                    <?php printf( \'<a href="%1$s"><time datetime="%2$s">%3$s</time></a>\',
                        esc_url( get_comment_link( $comment->comment_ID ) ),
                        get_comment_time( \'c\' ),
                        sprintf( _x( \'%1$s\', \'1: date\', \'twenties\' ), get_comment_date() )
                    ); ?>
                    </span><!-- .comment-date -->
                </header><!-- .comment-meta -->
                <?php if ( \'0\' == $comment->comment_approved ) : ?>
                    <p class="comment-awaiting-moderation"><?php esc_html_e( \'Your comment is awaiting moderation.\', \'twenties\' ); ?></p>
                <?php endif; ?>
                <div class="comment-content entry clr">
                    <?php comment_text(); ?>
                </div><!-- .comment-content -->
                <div class="reply comment-reply-link">
                    <?php comment_reply_link( array_merge( $args, array(
                        \'reply_text\' => esc_html__( \'Reply to this message\', \'twenties\' ),
                        \'depth\'      => $depth,
                        \'max_depth\'  => $args[\'max_depth\'] )
                    ) ); ?>
                </div><!-- .reply -->
            </div><!-- .comment-details -->
        </article><!-- #comment-## -->
    <?php
}
我从wpexplorer.com, 并对其进行了轻微修改,以排除“。。。时间的一部分就是这样。现在,您的评论将与您提供的回调中的自定义模板一起显示。

相关推荐

WordPress POST_CONTENT在wp_UPDATE_POST之后在cron中删除

我正在开发Wordpress插件(与WooCommerce) 从API获取HTML内容,并将其作为Post\\U内容添加到iframe中的WP Post中,方法如下:kses_remove_filters(); $newData[\'description\'] = str_replace(\"\\n\", \"\", $newData[\'description\']); $newData[\'description\'] = str_replace(\"\\t\", \"\", $ne