Reg*_*man 4 database wordpress comments
我试图在WordPress安装中扩展注释的功能.我读到了一个难以捉摸的"自定义评论类型"功能,但找不到任何信息.相反,我在想我会在'comments'数据库表中添加一个自定义列'.这很容易.我不知道怎么做是自定义注释查询以保存,更新和阅读注释以反映新表列的存在.我以为会有一个过滤器来改变查询,但我找不到任何可以做到的...任何想法?
没有真正的自定义注释类型,但您可以使用"comment meta"轻松有效地添加列,这是一个名称/值对的表,其中每个名称/值对与给定的注释关联使用'meta_key' (请不要) t将一列添加到SQL数据库;这在WordPress开发人员社区中是不受欢迎的.)
让我们假设你想让用户添加自己的Twitter帐户.这是我将Twitter帐户保存到确定的注释代码$comment_ID (前缀用下划线元键名是指您通过自定义代码VS,你让用户选择meta键保持任何元是个好主意):
update_comment_meta($comment_ID,'_twitter','mikeschinkel');
Run Code Online (Sandbox Code Playgroud)
然后加载要在您刚刚调用的模板中显示的值get_comment_meta() (第三个参数表示返回单个值,而不是值数组):
$twitter = get_comment_meta($comment_ID,'_twitter',true);
Run Code Online (Sandbox Code Playgroud)
当然,不知道如何挂钩的WordPress整合这上面的功能将不会是一个很大的帮助.有两个钩子,你需要使用,第一个是wp_insert_comment在WordPress的节省了评论将被调用:
add_action('wp_insert_comment','yoursite_wp_insert_comment',10,2);
function yoursite_wp_insert_comment($comment_ID,$commmentdata) {
$twitter = isset($_GET['twitter']) ? $_GET['twitter'] : false;
update_comment_meta($comment_ID,'_twitter',$twitter);
}
Run Code Online (Sandbox Code Playgroud)
第二个有点复杂; 允许您添加字段并修改评论表单的其他方面的那个.该'comment_form_defaults'钩设置了注释的默认值,并让你添加HTML的一个Twitter场(我钩住的格式从在HTML comment_form()功能发现,/wp-includes/comment-template.php在WP V3.0.1上线1511)
add_filter('comment_form_defaults','yoursite_comment_form_defaults');
function yoursite_comment_form_defaults($defaults) {
$email = $defaults['fields']['email'];
$label = __( 'Twitter' );
$value = isset($_GET['twitter']) ? $_GET['twitter'] : false;
$defaults['fields']['twitter'] =<<<HTML
<p class="comment-form-twitter">
<label for="twitter">{$label}</label>
<input id="twitter" name="twitter" type="text" value="{$value}" size="30" />
</p>
HTML;
return $defaults;
}
Run Code Online (Sandbox Code Playgroud)
这就是它在行动中的样子:

这个评论形式的可扩展性对于WordPress 3.0来说是新的,所以它在开源项目中的新特性可能不会适应所有用例(例如,没有简单的方法来获取Twitter屏幕的记忆值名称)但希望你能够足够弯曲它并获得你所需要的东西,并且在将来发布的WordPress中,评论表格API几乎肯定会有所改进.
希望这可以帮助.
-麦克风
PS将来考虑在StackOverflow的姊妹网站WordPress Answers上发布您的问题; 这就是大多数WordPress爱好者所喜欢的地方,那些能够快速回答这类问题的人.
| 归档时间: |
|
| 查看次数: |
3060 次 |
| 最近记录: |