个性化阅读
专注于IT技术分析

WordPress **_ e()**和**__()**函数有什么区别?它们是如何工作的?

我是WordPress主题开发的新手, 我有以下疑问。

我正在开发一种以常规方式使用BootStrap CSS框架的自定义主题:我创建了以下文件集:index.php, header.php, footer.php等

对于注释, 在开始时, 我创建了一个空的comments.php文件, 并且(显然)以这种方式无法读取或发表新注释。

因此, 我已经复制并粘贴了WP Twenty_Fourteen主题中存在的comment.php文件的内容。

因此, 它似乎可以正常工作, 但现在我有一些疑问。

这是我目前正在使用的comment.php文件的代码:

<?php
/**
 * The template for displaying Comments
 *
 * The area of the page that contains comments and the comment form.

 */

/*
 * If the current post is protected by a password and the visitor has not yet
 * entered the password we will return early without loading the comments.
 */
if ( post_password_required() ) {
    return;
}
?>

<div id="comments" class="comments-area">

    <?php if ( have_comments() ) : ?>

    <h2 class="comments-title">
        <?php
            printf( _n( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'twentyfourteen' ), number_format_i18n( get_comments_number() ), get_the_title() );
        ?>
    </h2>

    <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : ?>
    <nav id="comment-nav-above" class="navigation comment-navigation" role="navigation">
        <h1 class="screen-reader-text"><?php _e( 'Comment navigation', 'twentyfourteen' ); ?></h1>
        <div class="nav-previous"><?php previous_comments_link( __( '&larr; Older Comments', 'twentyfourteen' ) ); ?></div>
        <div class="nav-next"><?php next_comments_link( __( 'Newer Comments &rarr;', 'twentyfourteen' ) ); ?></div>
    </nav><!-- #comment-nav-above -->
    <?php endif; // Check for comment navigation. ?>

    <ol class="comment-list">
        <?php
            wp_list_comments( array(
                'style'      => 'ol', 'short_ping' => true, 'avatar_size'=> 34, ) );
        ?>
    </ol><!-- .comment-list -->

    <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : ?>
    <nav id="comment-nav-below" class="navigation comment-navigation" role="navigation">
        <h1 class="screen-reader-text"><?php _e( 'Comment navigation', 'twentyfourteen' ); ?></h1>
        <div class="nav-previous"><?php previous_comments_link( __( '&larr; Older Comments', 'twentyfourteen' ) ); ?></div>
        <div class="nav-next"><?php next_comments_link( __( 'Newer Comments &rarr;', 'twentyfourteen' ) ); ?></div>
    </nav><!-- #comment-nav-below -->
    <?php endif; // Check for comment navigation. ?>

    <?php if ( ! comments_open() ) : ?>
    <p class="no-comments"><?php _e( 'Comments are closed.', 'twentyfourteen' ); ?></p>
    <?php endif; ?>

    <?php endif; // have_comments() ?>

    <?php comment_form(); ?>

</div><!-- #comments -->

如你在前面的代码中看到的那样, 出现如下内容:

<?php _e( 'Comments are closed.', 'twentyfourteen' ); ?>

我知道_e函数显示从translate()返回的翻译文本(但是在什么语言中?)

我也找到类似的东西:

<?php next_comments_link( __( 'Newer Comments &rarr;', 'twentyfourteen' ) ); ?>

查看WordPress文档, 似乎可以理解__的含义类似于_e函数(或者我说错了吗?)

我不明白的是e函数(和* __函数)*的工作方式。

阅读文档说它的用法是:

 <?php _e( $text, $domain ) ?> 

其中:

$ text:是表示要翻译的文本的字符串$ domain:是一个字符串), 表示要检索翻译文本的域(因此, 我认为它表示可以在哪里找到翻译的文本)

好的, 所以在前面的代码中

$ text是:”新评论→”

然后:

$ domain是:二十四是预先安装的WordPress TwentyFourteen主题的名称或目录名称(或其他名称?)

所以我的疑问是:

1)我的’$ text’是’Newer Comments→’, 那么翻译在哪里?在什么领域定义?

2)e()和_()函数有什么区别?

特纳克斯

安德里亚


#1


_e()用于输出翻译后的字符串, 而__()返回翻译后的文本。

因此, _e()本质上是echo __()的简短版本。

如果不存在翻译, 则返回字符串($ text)。否则, 将返回翻译后的字符串。需要添加语言文件才能进行翻译。

在二十四个语言文件夹中查找。

赞(0) 打赏
未经允许不得转载:srcmini » WordPress **_ e()**和**__()**函数有什么区别?它们是如何工作的?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏