使用PHP将类添加到元素

时间:2015-06-27 13:07:46

标签: php wordpress

我目前正在为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而不是依赖核心的吗?

1 个答案:

答案 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.