【问题标题】:How to filter comments in Wordpress by a meta_value stored in wp_commentdata?如何通过存储在 wp_commentdata 中的 meta_value 过滤 Wordpress 中的评论?
【发布时间】:2011-11-07 03:14:11
【问题描述】:

我能够在 Wordpress 的数据库中,在 wp_commentmeta 表中,通过评论表单中的自定义字段输入这些数据:

meta_id | comment_id | meta_key       | meta_value
--------------------------------------------------
9       | 6          | commentoptions | option1
10      | 7          | commentoptions | option2

现在我正在尝试找到一种方法来过滤 cmets,以便根据 meta_value 值将它们显示在单个页面上的 2 列中,左侧一列和右侧一列。我的意思是:第一条评论必须放在左边一列,下一条评论必须放在右边一列。

一开始我以为“我很幸运,只需要创建两个div,用CSS定位它们,然后用wp_list_cmets函数过滤cmets”但是...... wp_list_cmets函数不能做到这一点。

有人可以建议我如何进行吗?提前致谢!

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    编辑:有点晚了......我刚刚意识到我的原始答案是针对发布元数据的。我将在下面留下我的原始答案,因为它可能对获取帖子的元字段很有用。在顶部,您会找到获取 comment 元字段的方法。

    假设这些元值通过 wordpress API 进入数据库,下面的代码将帮助您提取特定评论的元值post

    修改后的答案:

    <?php 
    $comment_id = 123;
    $key = "commentoptions"; // change to whatever key you are using
    $single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use
    
    $meta_values = get_comment_meta($comment_id, $key, $single); 
    ?>
    

    原答案(申请获取post元字段)

    <?php 
    $post_id = 123;
    $key = "commentoptions"; // change to whatever key you are using
    $single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use
    
    $meta_values = get_post_meta($post_id, $key, $single); 
    ?>
    

    您也可以使用 get_post_custom_values() ,如下所示,如果每个键都需要多个值,这是一种更好的方法。如果您使用 $single = false,上面的代码将执行相同的操作,但由于 get_post_meta() 函数的工作方式,它不是首选 - 如果只返回一个值,它会为您提供实际的字符串值,否则返回一个值数组。如果您有一个或多个键值,则以下方法将返回一个数组,因此它会导致代码更清晰、更直观。

    <?php
    $post_id = 123;
    $key = "commentoptions";
    
    $meta_values = get_post_custom_values($key, $post_id);
    ?> 
    

    【讨论】:

    • 非常感谢您的帮助,特别是因为来得太晚了!我可以从数据库中检索数据(meta_value),但是...我不知道如何根据这个 meta_value 在两列中列出 cmets。起初我想到的是这样的:“wp_list_cmets(array('meta_key' => 'commentoptions', 'meta_value' => 'option1'));”但是 wp_list_cmets 没有提供这个。任何建议将不胜感激。
    • @Morris 一种方法是在 WP 中使用 get_cmets() 函数。这将为您提供所需的 cmets 数据(您可以指定要检索的帖子或评论 ID)。结果是一个包含所有评论数据的数组。
    猜你喜欢
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多