- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试扩展 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 3.0 来说是新的,因此由于它在开源项目中的新特性,它可能不会适应所有用例 (例如没有简单的方法来获得记住了 Twitter 屏幕名称的值(value)),但希望您能够根据自己的意愿对其进行足够的弯曲并获得所需的内容,并且在将来发布的 WordPress 中,评论表单 API 几乎肯定会得到改进。
希望这对您有所帮助。
-迈克
附言将来考虑在 StackOverflow 的姊妹网站上发布您的问题 WordPress Answers ;这是大多数 WordPress 爱好者聚集的地方,他们可以快速回答此类问题。
关于database - 自定义 WordPress 评论帖子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054943/
我正在使用评论系统,现在,我想重写 url 评论的片段并附加一个符号#,我想将页面部分移动到评论列表,正好是最后一个评论用户,带有 username 我在发表评论时使用 next 重定向用户: {
这个问题在这里已经有了答案: "Rate This App"-link in Google Play store app on the phone (21 个回答) 关闭2年前。 有没有一种方法可以要
长期潜伏者第一次海报... 我们正在使用 Facebook 的 API 将其集成到我们的网络应用程序中,并且我们能够通过 {page-id}/ratings 部分中的 {open_graph_stor
我正在尝试让 Visual Studio 2012 自动格式化我的评论 block ,就像它对我的 C# block 所做的那样。我希望我的评论看起来像这样: /* * Here is my C#
在 MySQl 中创建表时对每个字段进行注释是否会影响性能?我正在处理一个包含 1000 多个表的数据库,几乎每个表中的每个字段都有注释。我只是想知道这是否会以任何方式影响 MySQL 的性能? 最佳
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个答案) 关闭 5 年前。 我这里有 2
如何在评论中正确编写 --> 或 -->? 我正在维护一个包含许多小程序代码条目的大型 html 文件。说: a --> b. 我在 HTML 中将其编码为 -->: a --> b. 但是,我
这是一个简单的问题。有没有办法允许用户直接在我的应用程序中输入评论和/或评级,并将这些数据发回 Android Market?如果是这样,如果我使用 EditText View 允许用户输入,代码会是
注释是否表示代码中带有//或/* */的注释? 最佳答案 不,注释不是评论。使用语法 @Annotation 将注释添加到字段、类或方法。最著名的注解之一是@Override,用于表示方法正在覆盖父类
我有一个包含两个模型的 Django 应用程序:第一个是 django.contrib.auth.User,第二个是我创建的 Product。 我会为每个产品添加评论,因此每个注册用户都可以为每个产品
有没有办法评论多行......其中已经有一些评论? 即 ... Hello world! Multi-line comment end --> 看来连
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: obj.nil? vs. obj == nil 现在通过 ruby koans 工作,发现这个评论嵌入在
这是一个基本问题 .gemrc 文件中是否允许注释? 如果是,你会怎么做? 我这里查了没用 docs.rubygems.org/read/chapter/11 最佳答案 文档说:The config
有没有办法在 SASS 中添加 sass-only 注释?你知道,所以输出 .css 文件没有那些注释 例如, /* global variables */ $mainColor: #666; /*
我想搜索在任何媒体上发布的评论中的任何特定关键字或几个关键字的组合。我的要求是在 API 的帮助下获取包含该关键字的评论。我浏览了 Instagram API 的文档,发现只能通过哈希标签进行搜索,而
在 WordPress 中,您可以在页面加载之前执行以下操作来编辑文章的内容: add_filter('the_content', 'edit_content'); function edit_con
在指示要合并的内容时, checkin 合并的最佳方法是什么?我已经说过 10 个变更集我正在从我的主分支合并到一个发布分支。每一个都包含我在 checkin 主分支时写的详细注释。现在,当我合并时,
我知道如何查询常规网站的社交参与度计数。可以使用Facebook图形浏览器(https://developers.facebook.com/tools/explorer/)或throug api轻松实
我正在尝试从 YouTube 视频中获得特定评论。例如,我想从 YouTube 视频的第 34 条评论中获取详细信息。有谁知道在不阅读所有评论列表的情况下我该怎么做? 或者,如果没有任何解决方案可以仅
我是一名优秀的程序员,十分优秀!