我希望能够有条件地加载一个类,该类在评论部分中包含“AUTHOR”一词,该词位于文章作者姓名旁边。我知道这和PostAuthor的课程有关,到目前为止我得到的是:
<?php if $class == \'bypostauthor\' ?>
<div class="author">AUTHOR</div>
<? endif; ?>
更多信息:
在我的wordpress帖子页面的评论部分,类。bypostauthor存在于任何时候,只要有一个作者在那里的贴子页上发表了评论,就可以在评论部分中为其中一个评论提供这个->
每当他们在页面上发表评论时,我都试图在帖子名的作者旁边加上“作者”一词。考虑到每当页面作者在其页面上发表评论时,bypostauthor类就会出现,我尝试使用以下代码使div类在作者发表评论时有条件出现->
<li <?php comment_class(\'clearfix\'); ?> id="li-comment-<?php comment_ID() ?>">
<div class="comment-block" id="comment-<?php comment_ID(); ?>">
<div class="comment-inside-block">
<div class="comment-info">
<div class="comment-author vcard clearfix">
<?php echo get_avatar( $comment->comment_author_email, 32 ); ?>
<div class="comment-meta commentmetadata">
<?php printf(__(\'<cite class="fn">%s</cite>\', \'playne\'), get_comment_author_link()) ?><?php if $class == \'bypostauthor\' ?>
<div class="author">AUTHOR</div>
<? endif; ?>
<div style="clear:both;"></div>
<a class="comment-time" href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ) ?>"> <?php echo themeblvd_time_ago_1(); ?> </a><?php edit_comment_link(__(\'(Edit)\', \'playne\'),\' \',\'\') ?>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="comment-text">
<?php comment_text() ?>
<p class="reply">
<?php comment_reply_link(array_merge( $args, array(\'depth\' => $depth, \'max_depth\' => $args[\'max_depth\']))) ?>
</p>
</div>
</div>
<?php if ($comment->comment_approved == \'0\') : ?>
<em class="comment-awaiting-moderation"><?php _e(\'Your comment is awaiting moderation.\', \'playne\') ?></em>
<?php endif; ?>
</div>
“>评论\\u作者\\u电子邮件,32);?>
<div class="comment-meta commentmetadata">
<?php printf(__(\'<cite class="fn">%s</cite>\', \'playne\'), get_comment_author_link()) ?>
<?php echo author_tag(); ?>
<div style="clear:both;"></div>
<a class="comment-time" href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ) ?>"> <?php echo themeblvd_time_ago_1(); ?> </a><?php edit_comment_link(__(\'(Edit)\', \'playne\'),\' \',\'\') ?>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="comment-text">
<?php comment_text() ?>
<p class="reply">
<?php comment_reply_link(array_merge( $args, array(\'depth\' => $depth, \'max_depth\' => $args[\'max_depth\']))) ?>
</p>
</div>
</div>
尝试了基于答案的内容->
function author_tag() {
$classes = get_comment_class();
if(in_array(\'bypostauthor\',$classes)) {
$output = <div class="author-tag"><p>AUTHOR</p></div>;
} else {
$output = <div class="author-tag"><p>NOT AUTHOR</p></div>;
}
return $output;
}
最合适的回答,由SO网友:Pieter Goosen 整理而成
你的第一段代码就快完成了。要使其完全工作,您需要获得注释类的列表,并对照该列表检查您的类。如果您的类存在于返回的列表中,则可以执行其他操作,如果不存在,则可以执行其他操作
使用get_comment_class()
检索该列表。下面是一个示例
$classes = get_comment_class();
if(in_array(\'bypostauthor\',$classes)) {
// do something for bypostauthor class
} else {
// do something else if bypostauthor class don\'t exist
}
EDIT 2
您的问题纯粹是语法问题。您的HTML需要介于单引号之间(
\'
), 否则它将被读取为php,这是无效的php,导致语法错误。检查下面的示例
function author_tag() {
$classes = get_comment_class();
if(in_array(\'bypostauthor\',$classes)) {
$output = \'<div class="author-tag"><p>AUTHOR</p></div>\';
} else {
$output = \'<div class="author-tag"><p>NOT AUTHOR</p></div>\';
}
return $output;
}
我会建议你获得一个好的语法highligher,这将对你处理无效语法有很大帮助