devgeniem/dustpress-comments

一个WordPress插件,允许DustPress主题启用评论功能。

安装量: 3,393

依赖关系: 0

建议者: 0

安全性: 0

星标: 1

关注者: 38

分支: 3

公开问题: 2

类型:wordpress-plugin

1.2.0 2019-11-19 13:25 UTC

README

geniem-github-banner

评论助手

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对象。《容器》也是一个包装对象,您可以通过它获取与当前状态相关的所有数据。

去构建一个加载器或其他一些有趣的功能吧!

状态

  • 提交
  • 回复
  • 取消回复
  • 分页
  • 成功
  • 错误