devgeniem / dustpress-comments
一个WordPress插件,允许DustPress主题启用评论功能。
Requires
- php: >=5.4
- composer/installers: ^1.0.12
- devgeniem/dustpress: >=0.4.0
This package is auto-updated.
Last update: 2024-08-31 08:09:29 UTC
README
评论助手
DustPress助手是创建包含更多逻辑的模板的有用工具。评论助手是一个DustPress插件,用于在DustPress主题中启用评论功能。
使用评论助手并传递所需参数,DustPress将为您的文章和页面提供AJAX驱动的评论功能。本插件提供快速入门的基础模板。只需安装并启用插件。您可以通过在主题内的/partials
目录中添加带有相应名称的自定义模板来覆盖模板,例如从容器开始:wp-content/themes/best-theme-ever/partials/commentscontainer.dust
。
为了在DustPress Comments使用的页面上启用完整页面缓存,助手参数必须通过过滤器或模型函数传递。您必须提供两个函数:一个用于获取评论参数,另一个用于评论表单参数。过滤器slug或模型名称将被写入评论部分数据集和评论表单中的隐藏输入字段。每个AJAX请求都将包括slug或模型名称,以便能够检索正确的助手参数。本文档末尾提供了两种情况的示例。
功能
- 线程式评论加载(线程式评论通过WordPress讨论设置启用)
- 评论列表渲染
- 表单渲染
- AJAX分页(分页通过WordPress讨论设置启用,并使用DustPress分页助手)
- AJAX评论提交
- AJAX和JS驱动的回复
- 使用JS和CSS显示和隐藏状态消息
- 外部JS调用
- 支持单页上的多个评论部分!
- 支持完整页面缓存!
包含的基础模板
- comments-container.dust(评论部分)
- comments.dust(评论列表、分页、表单)
- comment.dust(单个评论)
接受参数
我们将尽快提供参数的完整列表!如果您对助手的使用有疑问,请通过info@geniem.com或创建一个新的问题与我们联系。
示例用法
我们提供了两种使用助手并传递其使用参数的选项。
助手参数的模型函数
这两个函数都将获取当前文章ID作为参数。
class CommentsModel extends \DustPress\Model {
public function get_comments_args( $post_id ) {
// This disables replying to comments.
$args['reply'] = false;
return $args;
}
public function get_form_args( $post_id ) {
$args['title_reply'] = __('Comment', 'POF');
$args['label_submit'] = __('Submit', 'POF');
$args['class_submit'] = 'button radius';
$args['remove_input'] = array( 'url' );
$args['input_class'] = 'radius';
return $args;
}
}
然后在您的dust部分将此模型作为字符串传递给您的助手。
{@comments model="CommentsModel" /}
助手参数的过滤器函数
传递给助手的参数的另一种方法是创建两个过滤器函数。传递给助手的过滤器slug是过滤器字符串中/
分隔的第三部分。每个函数都必须扩展传递的$args
数组,然后返回它。
add_filter( 'dustpress/comments/my_comments/get_comments_args', 'my_comments_get_comments_args', 1, 2 );
function my_comments_get_comments_args( $args, $post_id ) {
$args['reply'] = false;
return $args;
}
add_filter( 'dustpress/comments/my_comments/get_form_args', 'my_comments_get_form_args', 1, 2 );
function my_comments_get_form_args( $args, $post_id ) {
$args['remove_input'] = array( 'url' );
return $args;
}
然后在您的dust部分将您的助手过滤器slug作为字符串传递。
{@comments filter_slug="my_comments" /}
扩展功能
DustPress Comments通过一些附加功能扩展了WordPress评论表单的功能。请使用以下关联键在评论表单参数中,并使用相应的值类型
- replace_input: array( '{field_name}' => {some_html} )_
- 通过将数组键分配给与输入字段名称匹配,替换评论表单输入字段
- remove_input: array( '{field_name}' )_
- 通过将数组键分配给与输入名称字段匹配,删除评论表单输入
外部JavaScript函数调用
如果您需要将自定义脚本集成到DustPress评论中,我们提供了一个方便的方法来添加外部监听器以执行JavaScript操作。这通过访问全局的window
对象下的全局DustPress
对象来完成。
var myFunction = function(state, container) {
if ('success' === state) {
alert('Your comment was posted!');
}
};
window.DustPress.Comments.addListener(myFunction);
每当DustPress评论执行一个动作时,它都会用两个参数调用您的监听器函数。state
指的是评论所处的状态,而container
则是当前评论区作为一个jQuery对象。《容器》也是一个包装对象,您可以通过它获取与当前状态相关的所有数据。
去构建一个加载器或其他一些有趣的功能吧!
状态
- 提交
- 回复
- 取消回复
- 分页
- 成功
- 错误