3分彩网投平台-3分快3投注平台_5分11选5娱乐平台

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

时间:2019-10-04 11:18:04 出处:3分彩网投平台-3分快3投注平台_5分11选5娱乐平台
作者:匿名 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

热门

热门标签