将注释表单中的选择选项的值保存为注释元

时间:2012-07-30 作者:Aras

在我正在编写的插件中,我需要让用户在发表评论之前从下拉列表中选择一个选项。我使用了comment\\u form操作,并在注释表单中插入了一个下拉列表。

/**
 * Modify the comment to add our custom left and right dropdown
 */
function modify_comment_form($post_id) {
    echo "
    <label class=\'comment\'>Choose your side:</label>
    <select id=\'tallytree_side\' name=\'tallytree_side\'>
        <option selected=\'selected\' value=\'neutral\'>Neutral Comment</option>
        <option value=\'left_answer\'>" . $this->get_left_answer() . "</option>
        <option value=\'right_answer\'>" . $this->get_right_answer() . "</option>
    </select>";
}
add_action(\'comment_form\', \'modify_comment_form\');
如下所示:

enter image description here

现在,我只需要能够保存这个下拉列表的值,当评论发布为这个特定评论的元数据时。请注意,这是一个插件,我不想按照中的建议修改核心wordpress文件a tutorial here. 我发现a relevant discussions 在wordpress论坛上,我仍然找不到我想要的答案。

如何将所选选项值保存为wordpress数据库中的注释元?

我是否需要使用AJAX来实现这一点,或者可以通过简单地使用可以用来检索下拉菜单值的操作或过滤器来实现这一点?

1 个回复
SO网友:Pontus Abrahamsson

您可以使用该功能update_user_meta 用于登录用户和php函数setcookie 对于访客。以下是如何使用的开始update_user_meta

您可以在提交表单时运行此函数,也可以通过AJAX运行此函数,我建议您使用AJAX运行此函数。

function wpse_update_user_commentform() {

    /**
     * Get values from the selected
     * Dropdown as tha variable $side
     * Change this to your dropdown name
    */

    $side = $_POST[\'dropdown\'];

    $comment_id = get_comment_ID();

    // Update the comment meta "comment_side" to the selected value
    update_comment_meta( $comment_id, \'comment_side\', $side );

}

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在