Walker_Comment中的“$Depth”参数代表什么?

时间:2018-01-01 作者:Jonathan Guerin

我正在尝试为我的注释编写一个自定义注释类,并且我已经尝试了很长一段时间来反构造代码,如下所示:

class Custom_Comment_Walker extends Walker_Comment {
    var $tree_type = \'comment\';
    var $db_fields = array( \'parent\' => \'comment_parent\', \'id\' => \'comment_ID\' );

    // constructor – wrapper for the comments list
    function __construct() { ?>
        <?php echo "Walker loaded."; ?>
        <section class="comments-list">

    <?php }

    // start_lvl – wrapper for child comments list
    function start_lvl( &$output, $depth = 0, $args = array() ) {
        $GLOBALS[\'comment_depth\'] = $depth + 1; ?>

        <section class="child-comments comments-list">

    <?php }

    // end_lvl – closing wrapper for child comments list
    function end_lvl( &$output, $depth = 0, $args = array() ) {
        $GLOBALS[\'comment_depth\'] = $depth + 1; ?>

        </section>

    <?php }

    // start_el – HTML for comment template
    function start_el( &$output, $comment, $depth = 0, $args = array(), $id = 0 ) {
        $depth++;
        $GLOBALS[\'comment_depth\'] = $depth;
        $GLOBALS[\'comment\'] = $comment;
        $parent_class = ( empty( $args[\'has_children\'] ) ? \'\' : \'parent\' ); 

        if ( \'article\' == $args[\'style\'] ) {
            $tag = \'article\';
            $add_below = \'comment\';
        } else {
            $tag = \'article\';
            $add_below = \'comment\';
        } ?>

        <article <?php comment_class(empty( $args[\'has_children\'] ) ? \'\' :\'parent\') ?> id="comment-<?php comment_ID() ?>" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
            <figure class="gravatar"><?php echo get_avatar( $comment, 65, \'[default gravatar URL]\', \'Author’s gravatar\' ); ?></figure>
            <div class="comment-meta post-meta" role="complementary">
                <h2 class="comment-author">
                    <a class="comment-author-link" href="<?php comment_author_url(); ?>" itemprop="author"><?php comment_author(); ?></a>
                </h2>
                <time class="comment-meta-item" datetime="<?php comment_date(\'Y-m-d\') ?>T<?php comment_time(\'H:iP\') ?>" itemprop="datePublished"><?php comment_date(\'jS F Y\') ?>, <a href="#comment-<?php comment_ID() ?>" itemprop="url"><?php comment_time() ?></a></time>
                <?php edit_comment_link(\'<p class="comment-meta-item">Edit this comment</p>\',\'\',\'\'); ?>
                <?php if ($comment->comment_approved == \'0\') : ?>
                <p class="comment-meta-item">Your comment is awaiting moderation.</p>
                <?php endif; ?>
            </div>
            <div class="comment-content post-content" itemprop="text">
                <?php comment_text() ?>
                <?php comment_reply_link(array_merge( $args, array(\'add_below\' => $add_below, \'depth\' => $depth, \'max_depth\' => $args[\'max_depth\']))) ?>
            </div>

    <?php }

    // end_el – closing HTML for comment template
    function end_el(&$output, $comment, $depth = 0, $args = array() ) { ?>

        </article>

    <?php }

    // destructor – closing wrapper for the comments list
    function __destruct() { ?>

        </section>

    <?php }
}
根据文件WordPress Developers:

这个变量决定了每个级别的深度,因此,如果我决定添加depth 属于1 我最初的评论是1 level 将允许的答复数为。

不幸的是,情况似乎并非如此。

1 个回复
SO网友:Johansson

这个$depth walker类中的参数用于输出和填充输出。您可以使用它来格式化HTML结构。例如:

<div class="comment-meta post-meta cmnt-padding-<?php echo $depth ;?>" role="complementary">
它将为您的注释包装器输出一个额外的类,您可以使用它来设置注释的样式。

结束

相关推荐

替换NavWalker下拉元素

我正在为我的学校创建一个网站Material Design for Bootstrap 以及NavWalker 给了我一些问题,我想更改下拉列表的元素,即ul 到div. 我试图编辑NavWalker.$output .= \"\\n$indent<div class=\\\" dropdown-menu dropdown-primary\\\" aria-labelledby=\\\"navbarDropdownMenuLink\\\" >\\n\"; 我编辑了代码并替换了DIV而