WordPress 评论回复嵌套功能的构成原理

  • 时间:
  • 浏览:0
  • 来源:5分快乐8_5分快乐8平台_5分快乐8网投平台
作者:匿名 hihi 来源:博客吧 浏览: 2011-7-17 15:08:39 字号:大 中 小

[摘要]对于 wordpress 新手来说 WordPress 的评论回复功能实现上以都会许多许难度本文详细介绍了下WordPress嵌套回复功能的实现原理,以帮助新手了解下WordPress的嵌套回复从而便于主题制作。

  本文中提及的另有一个土土办法均来自 Walker_Comment 类, 该类继承自 Walker, 是构建嵌套回复的核心累积。另外, WordPress 中的子页面和子分类也是使用 Walker 的子类来实现的。并且你想对 WordPress 的嵌套同能了解更多, 还才能查阅 WordPress Codex 中关于 Walker 类的说明。

  打开 wp-includes/comment-template.php, 查找 Walker_Comment 类。以下展开介绍这 4 个土土办法:

1.start_lvl

  子菜单列表的结束了了了标签, 默认是 <ul>, 在第另有一个子条目并且生成。

2.end_lvl

  对应 start_lvl 的子菜单列表的结束了了标签, 默认是 </ul>, 在最后另有一个子条目并且生成。

3.start_el

  条目的前半累积, 包括结束了了了符号和评论内容. 结束了了了符号是 <div> 并且 <li> (外层是 ol 或 ul 的情况表下是 <li>); 评论内容也不我评论的相关信息显示, WordPress 向亲戚亲戚大家提供了可即用的布局, 但也还才能通过 callback 土土办法改变评论内容的价值形式。调用回调函数的累积代码示意如下:

function start_el(&$output, $comment, $depth, $args) {

$depth++;

$GLOBALS['comment_depth'] = $depth;

// 并且定义了回调函数, 则调用其回调函数, 并终止里面的外理.



if ( !empty($args['callback']) ) {

call_user_func($args['callback'], $comment, $args, $depth);

return;

}

// 并且没人 定义回调函数, 则执行本土土办法中里面的外理, 生成默认的评论布局.



...

}

  亲戚亲戚大家所谓的自定义嵌套回复, 也不我创建另有一个 callback 土土办法,并在 wp_list_comments 土土办法中调用你你这个它生成自定义的评论价值形式,也还才能认为是定义另有一个新的土土办法, 取代 start_el 土土办法内内外部的默认布局。

4.end_el

  条目的后半累积,人太好就另有一个结束了了符号,这里也提供另有一个名为 end-callback 的回调土土办法, 原理和 start_el 一样,是另有一个自定义的外理土土办法。并且 end-callback 何必 常用,并且 end_el 只生成另有一个简单的结束了了符号,人太好没必要为此再定义另有一个土土办法。我人太好还才能才能 在须要错综复杂的评论价值形式时,才有必要用到 end-callback。如:要在评论的里面和下方都再加背景图效果,评论框内并且须要多另有一个 DIV 层, 则并且用上 end-callback。在 callback 土土办法中以 <div><div> 作为结束了了了,而 end-callback 中以 </div></div> 结束了了掉。

举例说明:

  下面将以另有一个嵌套回复的例子来证明上述内容。

现有评论嵌套价值形式如下:

    comment (1)

comment (1.1)

comment (1.2)

comment (1.2.1)

comment (2)

依照上述土土办法, 执行顺序如下:

start_el (1)

start_lvl (1)

start_el (1.1)

end_el (1.1)

start_el (1.2)

start_lvl (1.2)

start_el (1.2.1)

end_el (1.2.1)

end_lvl (1.2)

end_el (1.2)

end_lvl (1)

end_el (1)

start_el (2)

end_el (2)

假设土土办法配置都有默认的, 则:

start_lvl 为 <ul>

end_lvl 为 </ul>

start_el 为 <li> 和内容累积

end_el 为 </li>

又设 “…” 为评论内容, 则代码生成如下:

<li>

... (1)

<ul>



<li>

... (1.1)

</li>



<li>

... (1.2)

<ul>



<li>

... (1.2.1)

</li>



</ul>

</li>

</ul>

</li>

<li>

... (2)

</li>

WordPress下载:

本文转自:博客吧

sssss
Tags: wordpress   wordpress使用  
责任编辑:cc120