如何在循环中检查评论中的特定内容

时间:2015-04-16 作者:DukeLeto

我使用以下条件代码检查给定帖子上的任何评论是否包含特定字符串-在这种情况下,“更改”一词。如果我直接指定comment\\u ID,我可以使用它,但我希望代码使用循环来检查给定帖子的所有注释,并应用适当的HTML ID。

<?php
    if( have_posts() ) : while (have_posts()) : the_post(); ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(\'col-md-6 box\');?>>
        <div class="post-box article" 

<!-- custom code begins -->

<?php 

$mystring = get_comment_text($comment_ID = 23);
$findme   = \'CHANGES\';
$pos = strpos($mystring, $findme);

if ($pos === false) : ?>
    id="pendingcomment"
<?php else : ?>
    id="notapprovedcomment"
<?php endif; ?>
我试图替换$mystring引用,以便它在每次循环时查看帖子的所有注释。是否每次都必须在注释中运行另一个循环?如果是,那会是什么样子?

提前感谢您的时间!

1 个回复
最合适的回答,由SO网友:DukeLeto 整理而成

我用更多的阅读和胡闹来回答我自己的问题。。。

我必须运行一个“foreach”,在主循环中循环浏览给定帖子的评论。

下面的代码查看通过循环的每个帖子的所有注释,并检查注释内容中的特定字符串。根据$findme是否匹配,一个特定的HTML ID会写入div。一眼就能看出哪些帖子的评论中包含特定的内容。聚会开始。

<?php
if( have_posts() ) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(\'col-md-6 box\');?>>
<div class="post-box article"  

<?php

$comments = get_comments( array( \'number\' => 99, \'post_id\' => get_the_ID() ) );

if(get_comments_number()==0) : ?>
        id="pendingcomment"
<?php else : 

    foreach($comments as $comm) :

        $mystring = get_comment_text( $comm );
        $findme   = \'CHANGES!\';
        $pos = strpos($mystring, $findme);

        if($pos == true) : ?>
            id="notapprovedcomment"
        <?php elseif($pos == false) : ?>
                id="approvedcomment"
        <?php endif; 

    endforeach;
endif; ?>
>
毫无疑问,代码可能更简洁,但功能强大。希望有一天有人会觉得这个有用。

结束

相关推荐

无法选中WordPress页面的“Allow Comments”元选项

我试图在WordPress页面上允许评论,但当我选中页面的“允许评论”元复选框选项时(http://i.stack.imgur.com/P5Mbt.png ) 并保存页面,它不会保存设置,它会再次返回未选中的框!不知道为什么?!我的默认讨论设置如下:http://i.stack.imgur.com/5rxmn.png附言:它在帖子上效果很好,但在页面上却不行!有没有办法解决这个问题?提前感谢!