获取所有WooCommerce评论/评论

时间:2013-10-31 作者:kroma

我需要做的是从Woocommerce的所有产品中获得所有评论。

这根本没有给我任何评论。。。

<?php $comments = get_comments( array( \'post_type\' => \'product\') ); ?>
然而

<?php $comments = get_comments( array( \'post_id\' => \'4169\') );
获取特定产品ID的注释。如何查询所有注释?

提前谢谢。

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

请尝试以下操作:

 $args = array( 
                \'number\'      => 100, 
                \'status\'      => \'approve\', 
                \'post_status\' => \'publish\', 
                \'post_type\'   => \'product\' 
        );

 $comments = get_comments( $args );
您可以根据需要编辑评论的数量。

调试:

可能有什么东西通过pre_get_comments

要对其进行调试,可以通过以下方式签出SQL查询:

 global $wpdb;
 printf( \'<pre>%s</pre>\', $wpdb->last_query );
您可以将其直接添加到上面的下方get_comments() 代码段。

同时检查edit-comments.php 屏幕上是否显示评论及其状态。

SO网友:Ben

Woocommerce公司overrides comment queries, 这似乎会影响WC\\u Comment\\u Query和get\\u comments(),因为它会直接在SQL中过滤掉店铺注释。

在使用WC\\u Comment\\u查询之前添加以下内容,可防止在我的查询中排除店铺评论。

remove_filter(\'comments_clauses\', array( \'WC_Comments\' ,\'exclude_order_comments\'), 10, 1 );

SO网友:gabrielchristner

您需要遍历所有注释并显示它们。像这样的事情可以做到:

        $args = array( 
            \'status\'      => \'approve\', 
            \'post_status\' => \'publish\', 
            \'post_type\'   => \'product\' 
        );

        $comments = get_comments( $args );

        foreach( $comments as $comment ) :
            echo( $comment->comment_author . \'<br />\' . $comment >comment_content);
        endforeach; 
如果要指定要显示的注释数量,还可以传入“number”参数。默认值为null(无限制)。

结束

相关推荐

Security and Must Use Plugins

从codex article 必须使用插件:只需将文件上载到mu插件目录即可启用,无需登录我觉得这是一个潜在的安全问题。在站点上运行插件中的任何代码之前,必须通过管理面板激活常规插件。我一直认为这是一个明智的安全预防措施,因为攻击者如果能够以某种方式将文件上载到plugins文件夹,则在运行代码之前,还必须访问和修改数据库。这个mu-plugins 文件夹似乎提供了一种简单的方法来避免这种情况。我知道WordPress开发人员比我更了解安全性,所以我想知道是否有人能解释为什么这不是一个安全漏洞。