我目前正在为Wordpress创建一个主题,但我已经遇到了障碍,所以已经接近完成了!
我使用自定义评论字段,并将其包装在带有样式的容器中。但是这个容器是这样构建的:
调用主模板
<?php comments_template();?>
在我的主题目录中存在的comments.php内
<div class="tweleve columns row mytheme-box mytheme-body mytheme-form">
<?php if (have_comments() ): ?>
<h4 id="comments"><?php comments_number('No Comments','One Comment','% Comments');?></h4>
<ol class="comment-list">
<?php wp_list_comments('callback=custom_comments');?>
</ol>
<?php endif;?>
<?php
$comments_args = array(
'label_submit'=>'Submit Comment',
'title_reply'=>'Leave us a comment!',
'comment_notes_after' => '',);
comment_form($comments_args); ?>
</div>
mytheme-box将div变成一个带有小阴影,边界半径等的框。
mytheme-body在
中设置文本样式mytheme-form是表单的独特样式。
十二列是来自骨架框架的样式
在functions.php文件中
function custom_comments ($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<div id="comment-<?php comment_ID(); ?>">
<header class="comment-header">
<?php echo get_avatar($comment,$size='48',$default='<path_to_url>'); ?>
<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link($comment->comment_ID)) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time())?></a><?php edit_comment_link(__('(Modify)'),' ','')?></div>
</header>
<br>
<?php if ($comment->comment_approved == '0') : ?>
<em><?php _e('Your comment is pending approval.') ?></em>
<?php endif; ?>
<?php comment_text()?>
<div class="reply">
<?php comment_reply_link(array_merge($args, array('depth'=>$depth, 'max_depth'=> $args['max_depth']))) ?>
</div>
</div>
<hr>
<?php
}
这一切都很好,我在这里没有任何问题。我唯一的问题是我必须创建一个div来包装所有相关的注释,其中包含了comments.php中的代码。我之所以这样做是因为我不想触摸/ wp-includes文件,即使它包含comments_template.php,这也是我喜欢将mytheme-body,box和form style粘贴在其中的地方。得到它的地方。
原因是因为当我进入wordpress并关闭某个页面的评论时,我留下了一个空白框,其中评论使用的是,这非常令人讨厌。我能做些什么来解决这个问题吗?
一种可能只为一个已经创建的元素分配其他类的方法?我可以完全制作自己的comments_template.php而不是依赖核心的吗?
答案 0 :(得分:1)
您应该使用另一个条件来检查是否启用了注释。
使用条件标记comments_open
可以轻松实现。
在comments.php
文件的开头div
上方添加:
if(comments_open()):
//All of your code here
...
...
...
endif; //Use `else` if you want to show a notification.