amostajo / wordpress-search-typeahead
Wordpress 搜索 Typeahead 扩展插件,适用于 Wordpress 开发模板。
Requires
- php: >=5.4.0
- amostajo/wordpress-plugin-core: >=1.0.7
This package is auto-updated.
Last update: 2024-09-21 20:10:38 UTC
README
仅适用于Wordpress 插件模板和Wordpress 主题模板的附加包。
Typeahead将 Twitter 的 typeahead 集成到 wordpress 中,提供了一种灵活的方式来添加定制的搜索功能。
安装
此包需要Composer。
将其添加到位于模板根目录的composer.json
文件中
"amostajo/wordpress-search-typeahead": "1.0.*"
然后运行
composer install
或
composer update
下载包及其依赖项。
在模板中配置
在您的模板配置文件中的addons
数组选项中添加以下字符串行。
'Amostajo\Wordpress\TypeaheadAddon\Typeahead',
这应该添加到
config\plugin.php
在 Wordpress 插件模板中config\theme.php
在 Wordpress 主题模板中
使用方法
在模板中
在您的模板中调用typeahead_search()
函数,如下所示
<div class"search"> <?php typeahead_search() ?> </div>
更改过滤器
Typeahead 使用 WP_Query 获取文章,您可以通过以下方式修改搜索结果
<div class"search"> <?php typeahead_search( [ 'post_type' => 'product' ] ) ?> </div>
钩子
过滤器: addon_typeahead_query
默认过滤传递给 WP_Query 的参数。
add_filter( 'addon_typeahead_query', 'filter_query' ); function filter_query ($args) { // Array modifications $args['post_type'] = 'product'; $args['posts_per_page'] = 10; // Array is expected in return return $args; }
过滤器: addon_typeahead_post
过滤 WP_Query 返回的每个 WP_Post 对象。如果未修改,则附加包将把文章结果转换为 Post 模型(位于此包中)。
add_filter( 'addon_typeahead_post', 'filter_post' ); function filter_post ($post) { // Transformation of post into custom model $model = new MyModels\CustomPost(); // Array is expected in return return $model->from_post( $post )->to_array(); }
过滤器: addon_typeahead_data
过滤最终结果。接收数据作为数组以及搜索参数(用于 WP_Query 的那些)。
add_filter( 'addon_typeahead_data', 'filter_data' ); function filter_data ($data, $args) { // Adding custom records in results if ( $args['post_type'] != 'product' ) { // Adding extra product $data[] = MyProduct::find(999)->to_array(); } // Array is expected in return return $data; }
定制
所有位于views
文件夹中的视图都可以在您的主题中进行自定义。将它们复制并粘贴到您的主题中(与插件视图相同)并修改它们。
需要考虑的事项
<input type="text" id="search-typeahead" name="s" placeholder="Search..." class="default" data-hint="1" data-highlight="1" data-source="<?php echo $source_url ?>" data-template-empty="<?php echo $template_empty ?>" data-template-suggestion="<?php echo $template_suggestion ?>" data-onselect="1" />
data-onselect
将使选择的结果重定向到文章的永久链接。
尽量保持其他data
属性,如有需要则修改它们。
编码指南
编码是 PSR-2 和 Wordpress PHP 指南的混合。
许可证
搜索 Typeahead是免费软件,根据 MIT 许可证的条款分发。