gpt4 book ai didi

database - 自定义 WordPress 评论帖子查询

转载 作者:太空狗 更新时间:2023-10-30 01:54:05 26 4
gpt4 key购买 nike

我正在尝试扩展 WordPress 安装中的评论功能。我读到一个难以捉摸的“自定义评论类型”功能的典故,但找不到任何信息。相反,我想我会添加一个自定义列 ' 到 'comments' 数据库表。这是最简单的部分。我不知道该怎么做是自定义评论查询以保存、更新和阅读评论以反射(reflect)新表列的存在。我以为会有一个过滤器来改变查询,但我找不到任何可以做到的......有什么想法吗?

最佳答案

实际上并没有自定义评论类型,但您可以使用“评论元”轻松有效地添加列,这是一个关联的名称/值对表,其中每个名称/值对都关联使用 'meta_key' 给定评论(请不要向 SQL 数据库添加列;这在 WordPress 开发人员社区中是不受欢迎的。)

假设您想让用户添加他们的 Twitter 帐户。这是将我的 Twitter 帐户保存到由 $comment_ID 标识的评论的代码(使用下划线作为元键名称前缀对于您通过自定义代码维护的任何元是一个好主意 vs您让用户选择元键):

update_comment_meta($comment_ID,'_twitter','mikeschinkel');

然后加载要在模板中显示的值,您只需调用 get_comment_meta() (第三个参数表示返回单个值,而不是值数组):

$twitter = get_comment_meta($comment_ID,'_twitter',true);

当然,如果不知道如何 Hook WordPress 以集成此功能,上述功能将不会有太大帮助。您需要使用两个 Hook ,第一个是 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);
}

第二个有点复杂;允许您添加字段和修改评论表单其他方面的那个。 'comment_form_defaults' Hook 设置评论的默认值,让您为 Twitter 字段添加 HTML (我从 comment_form() 在 WP v3.0.1 的第 1511 行的 /wp-includes/comment-template.php 中找到的函数)

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;
}

下面是它的实际效果:

WordPress Comments form with a Twitter field

这种评论表单的可扩展性对于 WordPress 3.0 来说是新的,因此由于它在开源项目中的新特性,它可能不会适应所有用例 (例如没有简单的方法来获得记住了 Twitter 屏幕名称的值(value)),但希望您能够根据自己的意愿对其进行足够的弯曲并获得所需的内容,并且在将来发布的 WordPress 中,评论表单 API 几乎肯定会得到改进。

希望这对您有所帮助。

-迈克

附言将来考虑在 StackOverflow 的姊妹网站上发布您的问题 WordPress Answers ;这是大多数 WordPress 爱好者聚集的地方,他们可以快速回答此类问题。

关于database - 自定义 WordPress 评论帖子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com