Add Comment Custom Field

时间:2012-06-28 作者:markyeoj

我搜索了很多关于我的问题的帖子,但不幸的是,我发现什么都不起作用,这是我最后的选择。我想在我的评论表单上添加一些自定义字段。我该怎么做?

2 个回复
最合适的回答,由SO网友:Rutwick Gangurde 整理而成

给你:Adding Custom Fields to WordPress Comment Forms?

还有另一个很棒的帖子:http://wpengineer.com/2214/adding-input-fields-to-the-comment-form/

功能可用于添加/更新、删除评论元,类似于帖子和用户元。

Edit:下面是一个让您开始的示例(将代码放入functions.php 或在自定义插件中):

将字段添加到注释表单:

add_filter( \'comment_form_defaults\', \'change_comment_form_defaults\');
function change_comment_form_defaults( $default ) {
    $commenter = wp_get_current_commenter();
    $default[ \'fields\' ][ \'email\' ] .= \'<p class="comment-form-author">\' .
                                            \'<label for="city">\'. __(\'City\') . \'</label>
                                        <span class="required">*</span>
                                        <input id="city" name="city" size="30" type="text" /></p>\';
    return $default;
}
4个用于检索/添加/更新/删除注释元的函数:

get_comment_meta( $comment_id, $meta_key, $single = false );
add_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
update_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
delete_comment_meta( $comment_id, $meta_key, $single = false );
这是进行验证的地方:

add_filter( \'preprocess_comment\', \'verify_comment_meta_data\' );
function verify_comment_meta_data( $commentdata ) {
    if ( ! isset( $_POST[\'city\'] ) )
        wp_die( __( \'Error: please fill the required field (city).\' ) );
    return $commentdata;
}
并保存评论元:

add_action( \'comment_post\', \'save_comment_meta_data\' );
function save_comment_meta_data( $comment_id ) {
    add_comment_meta( $comment_id, \'city\', $_POST[ \'city\' ] );
}
检索并显示注释元:

add_filter( \'get_comment_author_link\', \'attach_city_to_author\' );
function attach_city_to_author( $author ) {
    $city = get_comment_meta( get_comment_ID(), \'city\', true );
    if ( $city )
        $author .= " ($city)";
    return $author;
}
(Note: 所有代码都来自WPengineer 我在上面发布的链接。那篇文章有更多的细节和高级用法,请也检查一下!)

SO网友:Aleks

Beau Lebens的这张幻灯片应该能够向您展示如何:Hooking into Comments

奥托的这篇博文应该能够向您展示更多:WordPress 3.0 Theme Tip: The Comment Form

这里还有一个名为“Wordpress插件:额外评论字段”的基本插件(抱歉,无法发布链接)。

结束

相关推荐

Disable Comments Feed

我在一个私人网站上工作,那里需要隐藏评论。我知道如何从标题中删除注释提要,但是谁能给我一些关于如何完全禁用注释提要的说明呢。因为你所需要做的就是在单个帖子中添加/feed/然后你就可以看到评论feed了。我尝试创建feed-atom注释。php和feed-rss2-comments。php,但这仍然不起作用。