在创建新主题时,我们必须自定义注释流。为此,有两个功能:wp_list_comments()
和get_comments()
. 我不太确定如何设置从中出现的内部元素的样式,如Gravatar、comment description、comment author等。为了对它们进行一些样式设置,我首先需要知道分配给它们的DOM元素。我在哪里可以找到他们?
我尝试了几乎所有的来源,我无法正确理解。
在创建新主题时,我们必须自定义注释流。为此,有两个功能:wp_list_comments()
和get_comments()
. 我不太确定如何设置从中出现的内部元素的样式,如Gravatar、comment description、comment author等。为了对它们进行一些样式设置,我首先需要知道分配给它们的DOM元素。我在哪里可以找到他们?
我尝试了几乎所有的来源,我无法正确理解。
您应该使用wp_list_comments()
, 因为这将调用可以处理注释线程的Walker类:
// from wp_list_comments()
if ( empty($walker) )
$walker = new Walker_Comment;
$walker->paged_walk($_comments, $max_depth, $page, $per_page, $r);
Walker_Comment
处理注释的标记。您可以通过自定义助行器进行更改。示例:
class Simple_Comment_Walker extends Walker_Comment
{
function start_el( &$output, $comment, $depth, $args, $id = 0 ) {
$depth++;
$GLOBALS[\'comment_depth\'] = $depth;
$GLOBALS[\'comment\'] = $comment;
print \'<li>\' . get_comment_author_link() . \'<br>\';
comment_text();
}
}
wp_list_comments( array ( \'walker\' => new Simple_Comment_Walker ) );
但是,如果只想更改单个注释标记,则不需要这样做。你可以通过callback
参数到wp_list_comments()
执行相同操作:function simple_callback()
{
print \'<li>\' . get_comment_author_link() . \'<br>\';
comment_text();
}
wp_list_comments( array ( \'callback\' => \'simple_callback\' ) );
如果还想更改注释列表的容器元素,请使用自定义walker,如果只想更改单个注释,请使用回调。您可以覆盖中的所有内容Walker_Comment
, 看见wp-includes/comment-template.php
有关详细信息。
记住你应该not close 第一个注释容器(在我的示例中<li>
), Walker在打印完整个线程后执行此操作。
基本上,我正在尝试添加多个子导航菜单,我非常接近,但我似乎找不到解决问题的正确方法。。。我正在使用Stu Nichols CSS菜单的变体。。。代码解释得更好;-)构建此菜单所需的关系将顶层元素作为列表项,子容器作为div,子容器和同级{nth child}作为uls。。。所以结构如下。。。<li><a href=\'#\'>parent</a> <div>child-container <ul><!--1s