WordPress ** _ e()**和** __()**函数有什么区别?它们究竟如何运作?

时间:2014-02-17 18:32:41

标签: php content-management-system wordpress-theming wordpress

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

我正在开发一个以通常方式使用 BootStrap CSS框架的自定义主题:我创建了一组文件: index.php 标头。 php footer.php ,etcetc

对于评论,在开始时,我创建了一个空的 comments.php 文件,并且(显然)这样做我既不会阅读也不会发布新评论。

所以我复制并粘贴了WP Twenty_Fourteen 主题中 comments.php 文件的内容。

所以它似乎工作正常,但现在我有些疑惑。

这是我目前使用的 comments.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()返回的翻译文本(但是在languanges中?)

我也找到了类似的东西:

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

看看WordPress文档,它似乎明白__的含义与_e函数类似(或者我说的是错误的东西?)

我无法理解的是它如何工作 e 功能(以及* __功能)*。

阅读文档说它的用法是:

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

其中:

  

$ text :是一个字符串,代表要翻译的文字

     

$ domain :是一个字符串),表示用于检索已翻译文本的(所以我认为它代表了翻译的位置   可以找到)

好的,所以在之前的代码中我有

$ text 是:'较新评论→'

那:

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

所以我怀疑是:

1)我的'$ text''较新的评论→',那么翻译在哪里?在什么languanges定义?

2) e() _()功能?

TNX

安德烈

1 个答案:

答案 0 :(得分:2)

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

所以_e()基本上是echo __()的简短版本。

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

查看二十四的语言文件夹。