本站开发的 WordPress 多条件筛选过滤插件 – Wizhi Multi Filters

本站开发的 WordPress 多条件筛选过滤插件 – Wizhi Multi Filters

本站开发的 WordPress 多条件筛选过滤插件 – Wizhi Multi Filters
注意:本站不再为此插件提供任何服务,有能力的朋友请看下面的教程安装使用。

在本站之前的文章中介绍过 WordPress 根据多种条件筛选查询内容 的方法,有不少朋友搜到了这篇文章,咨询到了我具体的使用方法。其实文章中已经介绍得比较清楚了,稍微有点基础的朋友应该是可以集成到主题中的。不过懒是一个合格程序员的基本素质,已经实现过的功能再去实现一遍对人类智力和大家的时间也是一种浪费。为了方便大家使用,我花了一天的时间,把上面的功能做成了一个插件,插件命名为:Wizhi Multi Filters。废话不多说了,下面介绍一下插件的使用方法。

Wizhi Multi Filters插件实现的效果截图

如下图,图中的学科、专业、资质都是在后台定义的自定义分类法,后面的筛选项目都是自定义分类法中的分类项目,可以在后台自由编辑。点击某个筛选条件的连接时,会立即筛选内容。

Wizhi Multi Filters screenshot

Wizhi Multi Filters 插件设置

注意! 此插件需要结合自定义文章类型和自定义分类法使用,创建自定义文章类型和自定义分类法的方法请参考 Wizhi CMS插件。或参考官方文档:自定义文章类型自定义分类法

为了方便大家使用,插件提供了一些基本设置,如下图:

  • 选择需要筛选的文章类型:在自定义文章类型中选择一项为需要筛选的文章类型。
  • 选择需要筛选的分类方法:在自定义分类方法中选择一个或几个作为筛选条件,需要注意的是:作为筛选条件的分类方法必须是注册到上面选择的文章类型中的自定义分类法。
  • 不显示CSS:为了使筛选能够正常显示,插件定义了一些基本的CSS样式,选择这个选项,插件将不会输出默认的CSS样式,需要在主题中自己添加一下。

Wizhi Multi Filters

在主题中显示 Wizhi Multi Filters 过滤条件

默认情况下,除了基础 CSS,插件并不会输出任何内容,需要在主题中添加下面几段代码,才能显示多条件筛选。添加代码的位置可以是自定义页面模板或者自定义分类法存档页面。

<?php //输出多条件筛选过滤列表 ?>
<?php
   $filters = new Wizhi_Filter('prod', array('procat','area'), true); //输出多条件筛选
   $wp_query = $filters->wizhi_get_filter_object(); //筛选后的WP_Query实例
?>

<?php //插件升级到1.5版本之后,终于支持了筛选多个文章类型,使用方法也简单了,直接在主循环之前,添加这一个函数就可以了。 ?>
<?php if ( function_exists ("wizhi_multi_filters")) { wizhi_multi_filters(); } ?>

<?php //输入多条件筛选过滤列表,就是一个标准的WordPress查询,输出的模板可以自由定制 ?>
<?php if (have_posts()) { ?>
    <?php while (have_posts()) : the_post(); ?>
        <?php get_template_part( 'content', 'lists' ); ?>
    <?php endwhile; ?>
<?php } ?>

插件后续更新计划

这是 Wizhi Multi Filters 插件的第一个版本,还有一些不完善的地方,我会根据插件的使用情况和大家的建议保持插件更新,目前可能会增加的一些功能:

  1. 增加简码和默认模板,更方便使用: 2015/08/20最新版插件可以直接使用主题的模板,次功能已经没有必要了,放弃添加。
  2. 后台增加是否显示已筛选项的选项: 2015/06/08 已完成
  3. 静态化过滤 URL,增加 SEO 友好度。
  4. 插件设置中,根据选择的文章类型显示关联到文章类型的分类法,使插件设置有更好的用户体验: 2015/06/20 已完成
  5. 增加文章排序功能,排序条件可自定义: 2015/08/027 计划独立出来,放到一个专门的文章排序插件里面。
  6. 增加搜索功能,可搜索筛选的自定义分类里面的文章: 2015/07/02 已完成
  7. 添加默认的文章类型和分类法,可在后台修改自定义分类法的名称: 2015/07/06 已完成
  8. 添加多文章类型支持,根据文章类型自动显示分类法作为判断条件:2015/07/19,已完成

如果大家对 Wizhi Multi Filters 插件有任何意见或建议,欢迎在评论中提出,或者直接联系我进行反馈。

获取Wizhi Multi Filters插件

插件已上传到 WordPress 官方仓库,仓库地址:https://wordpress.org/plugins/wizhi-multi-filters/,请有需要的朋友自行下载,或在 WordPress 后台搜索 Wizhi Multi Filters 安装。

使用插件前需要注意的事项

  1. 本插件不支持筛选默认的文章或页面,只支持自定义文章类型。
  2. 本插件设计的在文章类型的存档页面进行筛选,在首页或自定义页面中可能不能正常使用。

多条件筛选主题定制开发

由于本插件原理上的限制,很多功能实现不了(如 URL 静态化,筛选默认的文章等),于是在本插件原理的基础上,做了一个基于多条件筛选的主题,实现了URL 静态化,在后台添加多个文章类型、根据筛选条件自动生成关键词等 高级功能,目前,该功能只会在定制主题中添加,如有需要,可以联系我咨询。

本站提供 WordPress 主题定制开发服务

本站长期承接 WordPress 主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 8 年 WordPress 开发经验,如果你想 用 WordPress 开发网站, 请联系 QQ: 470266798,或邮箱: 4626395@gmail.com 咨询。

54 thoughts on “本站开发的 WordPress 多条件筛选过滤插件 – Wizhi Multi Filters

  1. 问个问题!如果把wordpress 标签链接 如 tag/标签名称/ 变成 tag/12321 (其中12321 是该标签的ID)

    1. 估计要用Rewrite API 自定义一下了,有空帮你调试一下,代码以文章的方式贴出来。

    1. 前台测试可以查看本站的文档栏目,需要测试后台的可以在工作时间联系我索要测试账号。

  2. 你好 根据教程 实现了 页面http://www.56brand.com/sift
    但是有两个问题想咨询:
    1、如何在默认显示的列表下 只显示 指定的目录的文章列表
    2、翻页时,总是默认跳转首页 不能实现.com/sift/page1 或者.com/sift/0_0_0_371/page1 这种格式的
    如能解答 万分感谢 可以付费帮助

    1. 没有分页应该是分页参数$paged的重置了吧?加我QQ,可以帮你看看。

    1. 插件完全开源,没有任何限制。只不过购买一个插件,只能提供一个网站的安装调试支持。

    1. 不是太明白你说的层级是什么意思?筛选条件?还是筛选条件下面还有子分类?

  3. 我想实现类似这样的:http://itjuzi.com/company 。可能会设置比较多筛选标准

    1. 实现这样的效果是可行的,在后台注册自定义分类法就行了,每一个筛选条件是一个自定义分类法。不过如果想要参考网址中的效果,前段需要你自己实现一下。

  4. 博主,你要觉得瑞课教育真是个公司,那你就大错特错了,一个毛都没有,做个网站就自称公司的,时不时骗点钱,你觉得他会有公司?企业资质都没有,还瑞课教育,瑞课骗子是对他最好的简称!

      1. 啥意思,目前个人在他家培训中,感觉还行。资源也挺丰富的。

  5. 无耻啊,http://fxd2006.blog.163.com/blog/static/1394159020160149462210 国外免费插件改个名字

    1. 不多说,源码已开放,自己看源码去:https://bitbucket.org/iwillhappy1314/wizhi-multi-filters/,详细信息请看声明:https://www.wpzhiku.com/wizhi-multi-filters-infringed/

  6. 有静态链接的功能吗?
    我要这种静态链接:www.wpzhiku.com/wizhi-multi-filters/
    而不是这种:www.wpzhiku.com/wizhi/multi/filters/,(用斜杠来分开,搜索引擎会默认为有好多级,不利于SEO)
    ,能做的话,付费多少?

      1. Warning: array_combine() expects parameter 1 to be array, string given in /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php on line 70

        Warning: Invalid argument supplied for foreach() in /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php on line 96

  7. 登录页
    Warning: array_combine() expects parameter 1 to be array, string given in /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php on line 70

    Warning: Invalid argument supplied for foreach() in /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php on line 96

    Warning: Cannot modify header information – headers already sent by (output started at /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php:70) in /data/home/qxu1539730172/htdocs/wp-login.php on line 387

    Warning: Cannot modify header information – headers already sent by (output started at /data/home/***/htdocs/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php:70) in /data/home/qxu1539730172/htdocs/wp-login.php on line 400

    1. 警告应该不影响运行的,把 WP_DRBUG 关掉应该就不显示了,真不行加我 QQ,我帮你看看。

  8. 非常感谢无私的提供插件,希望刀哥能补充详细的使用方法,按照您上面的教程调试总是操作不了,能有强大的教程支持就真的非常完美了

    1. 教程没时间弄,使用上有问题或者遇到了bug,加QQ或发邮件说吧。

  9. https://www.wpzhiku.com/codex/page/2/。用你的演示站测试了,有同样的问题,这个是页面第二页,但是如果在第二页筛选的话,正常情况下筛选后的页面应该是第一页开始。但是插件还是从第二页开始了。
    https://www.wpzhiku.com/codex/page/2/?var_function=attachment
    在第二页筛选后应该是这样的https://www.wpzhiku.com/codex/var_function=attachment
    因为筛选后应该从第一开始

  10. 刀哥 那个我按照网页的代码贴进去 发现不是很灵光,想筛选作品这种文章 也识别到了分类 可是 页面上只显示出两个所有 两个字

    1. 测试内容添加了吗?里面有文章的分类才能显示出来,如果分类里面没文章,点击这个筛选条件肯定是筛选不出来内容的。

  11. 启用后错误代码
    Parse error: syntax error, unexpected ‘[‘ in /var/www/vast/home/pg4vay5th5/kaka.ml/wp-content/plugins/wizhi-multi-filters/wizhi-multi-filter.php on line 26

    1. 新版插件使用率 PHP5.4 的数组简写语法,升级 PHP 到5.4以上版本就可以了,建议升级到5.6。看来得加个升级提醒。

  12. 楼主怎么实现不了筛选呢,点击了之后显示的还是之前的

  13. 可以介绍一款支持你这个插件的主题吗?我要做企业站要用到这个功能

    1. 国外的主题比较遵循 WordPress 规范,一般都支持,国内的不好说。

    1. 你是哪位?如果插件有问题用不了的话,支付宝发过来,退款给你。

  14. 你好,自定义分类能不能换成一级栏目调用二级栏目呢?比如 学科 是一级分类,人文百科是二级分类。谢谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*