ethitter / taxonomy-dropdown-widget
创建一个非层次结构的分类下拉列表,作为术语(标签)云的替代品。之前称为标签下拉小部件。
Requires
- php: >=5.6.0
This package is auto-updated.
Last update: 2024-09-19 07:18:48 UTC
README
贡献者: ethitter
捐赠链接: https://ethitter.com/donate/
标签: tag, tags, taxonomy, sidebar, widget, widgets, dropdown, drop down
至少需要 2.8
已测试至 6.0
稳定标签 2.3.3
需要PHP 5.6
许可: GPLv2 或更高版本
许可URI: https://gnu.ac.cn/licenses/gpl-2.0.html
创建一个非层次结构的分类下拉列表,作为术语(标签)云的替代品。之前称为标签下拉小部件。
描述
创建非层次结构的分类下拉列表(如 post tags
),作为术语(标签)云的替代品。可以使用多个小部件,每个小部件都有自己的选项集。
提供多种格式化选项,包括术语的最大数量、术语顺序、截断术语名称等。
使用 taxonomy_dropdown_widget()
函数,用户可以在包含的小部件之外生成下拉列表。
仅使用版本 2.2 或更高版本与 WordPress 4.2 及以后的版本一起使用。 WordPress 4.2 改变了数据库中存储分类信息的方式,这直接影响了此插件的包含/排除术语功能。
此插件之前称为 Tag Dropdown Widget
。它为了版本 2.0 而完全重写。
在 GitHub 上关注并贡献开发 https://github.com/ethitter/Taxonomy-Dropdown-Widget。
安装
- 将 taxonomy-dropdown-widget.php 上传到 /wp-content/plugins/。
- 通过 WordPress 插件菜单激活插件。
- 在 WordPress 中从外观 > 小部件菜单激活小部件。
- 从小部件的管理面板设置显示选项。
常见问题解答
标签下拉小部件插件怎么了?
自从我在 2009 年 11 月首次发布此插件以来,WordPress 引入了自定义分类,并且在下面更详细地讨论中,新小部件 API 取代了其前身。作为与小部件 API 相关的重写的一部分,我扩展了插件以支持非层次结构的自定义分类,这需要为插件赋予新名称。
你为什么要重写插件?
当我最初编写 Tag Dropdown Widget 插件(及其姐妹 Tag List Widget)时,WordPress 正处于小部件管理方式的变革之中。我决定利用旧的 widget 方法以确保当时具有最大的兼容性。自从我发布 1.0 版本以来,近两年时间里,新小部件系统已被广泛采用,使此插件处于不利地位。因此,我重写了插件以使用新的 widget API,并添加了对除了帖子标签之外的非层次结构分类的支持。
我升级到版本 2.0 后,所有的 widget 都消失了。发生了什么事?
如上所述,WordPress 的小部件系统自从我首次发布此插件以来发生了巨大变化。为了便于重复使用相同的小部件同时允许每个小部件保持自己的选项集,存储 widget 选项的方式发生了变化。因此,没有实际的方法可以从 1.7 版本过渡到 2.0 版本。
如果我的主题不支持 widget,或者我想要在侧边栏之外包含下拉列表,我还可以使用此插件吗?
将以下函数 <?php if( function_exists( 'taxonomy_dropdown_widget' ) ) echo taxonomy_dropdown_widget( $args, $id ); ?>
插入到下拉列表应出现的位置,指定 $args
为参数数组,以及可选的 $id
为唯一标识此下拉列表的字符串。
- taxonomy - 下拉列表中使用的分类的缩略名。默认为
post_tag
。 - select_name - 下拉列表中第一个(默认)选项的名称。默认为
Select Tag
。 - max_name_length - 表示要显示的术语名称最大长度的整数。设置为
0
以显示完整名称。默认为0
。 - cutoff - 指示术语名称根据
max_name_length
设置已被截断的字符串。默认为省略号(…
)。 - limit - 指定要检索的最大术语数量的整数。设置为
0
表示无限制。默认为0
。 - orderby - 要按术语名称(
name
)或与给定术语相关联的帖子数量(count
)排序。默认为name
。 - order - 为升序(
ASC
)或降序(DESC
)排序。默认为ASC
。 - threshold - 指定术语必须分配的最小帖子数量,才能包括在下拉列表中。设置为
0
表示无阈值。默认为0
。 - incexc -
include
或exclude
以包含或排除其 ID 包含在incexc_ids
中的术语。默认情况下,此限制未启用。 - incexc_ids - 用逗号分隔的术语 ID 列表,根据
incexc
设置包含或排除。 - hide_empty - 设置为
false
以在下拉列表中包含任何尚未分配给任何对象(即未使用的标签)的术语。默认为true
。 - post_counts - 设置为
true
以在术语名称后包含帖子计数。默认为false
。
为什么 makeTagDropdown()、TDW_direct() 和 generateTagDropdown() 函数已被弃用?
2.0 版本是对原始 Tag Dropdown Widget 插件的完全重写。作为重写的一部分,所有用于生成标签下拉列表的先前函数都已弃用或标记为过时,因为它们无法访问 2.0 版本中引入的完整功能集。虽然这些函数仍然存在,但它们的功能极为有限,现在应使用 taxonomy_dropdown_widget()
来替换。
我在哪里可以获得用于包含或排除选项的术语 ID?
术语 ID 可以通过多种方式获得。最简单的方法是访问分类术语编辑器(例如,在“帖子”下的“帖子标签”中找到),在悬停于术语名称上时,查看浏览器状态栏。地址的末尾,术语 ID 将跟在“tag_ID”文本之后。
您还可以通过单击帖子标签页中任何术语名称下的编辑链接来获取术语 ID。接下来,查看浏览器地址栏。地址的末尾,术语 ID 将跟在“tag_ID”文本之后。
我想更多地控制下拉列表中显示的标签。这是否可能?
此插件依赖于 WordPress 的 get_terms()
函数(http://codex.wordpress.org/Function_Reference/get_terms)。要修改传递给此函数的参数,请使用 taxonomy_dropdown_widget_options
过滤器来指定 Codex 页面中讨论的任何参数。
为了在您使用多个下拉列表实例(多个小部件、使用 taxonomy_dropdown_widget()
函数或两者的组合)的情况下进行特定过滤器引用,该过滤器提供了一个第二个参数,$id
,它是小部件实例的数字 ID 或作为 taxonomy_dropdown_widget()
第二个参数提供的字符串。
变更日志
2.3.3
- 正确使用钩子加载插件文本域。
2.3.2
- 准备好的翻译插件。
2.3.1
- PHP 7.3 兼容性。
2.3
- WordPress 4.3 的更新,通过移除 PHP4 风格的小部件构造函数使用(https://make.wordpress.org/core/2015/07/02/deprecating-php4-style-constructors-in-wordpress-4-3/)。
2.2
- WordPress 4.2 的更新,以处理插件包含/排除功能中的术语拆分。详情请参阅 https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/。
2.1
- 在下拉列表及其组件上引入过滤器,以实现更大的可定制性。
- 将插件实现为单例以提高可重用性。
- 提高对 WordPress 编码标准的遵循程度。
- 提高插件的翻译能力。
- 通常清理代码以提高可读性和清晰度。
- 出于清晰起见,消除所有对
extract()
的使用。
2.0.3
- 修复了 WordPress 3.3 及更高版本中导致空分类下拉列表的问题。
- 移除所有对 PHP 短标签的使用。
2.0.2
- 允许小部件选项中的标题为空。如果为空,则不会运行
taxonomy_dropdown_widget_title
过滤器。
2.0.1
- 修复了旧版本 WordPress 中由小部件类中的 PHP4 和 PHP5 构造函数导致的致命错误。
2.0.0.2
- 修复了导致没有任何术语被列出的帖子计数阈值问题。
2.0.0.1
- 修复了在不必要的情况下附加截断指示器的问题。
2.0
- 完全重写插件以使用 WordPress 的新小部件 API。
- 停止支持 WordPress 2.7 及更早版本。
- 除了“文章标签”之外,还添加了对所有公共、非层次结构的自定义分类的支持。
- 引入了一个新的、更灵活的函数,用于手动生成下拉菜单。
- 引入了社区要求的功能选项,例如控制默认下拉项。
- 修复了包含/排除功能中的持续性问题。
- 小部件管理器已准备好翻译。
1.7
- 将
TDW_direct()
和makeTagDropdown()
替换为generateTagDropdown()
。 - 重新编码整个插件以简化并清理整体功能。
- 将排除功能切换为使用标签 ID 而不是标签别名。
- 根据用户反馈,在小部件面板中添加了众多附加选项,具体如下。
- 添加了指定当标签名称被裁剪时显示的指示器的功能。
- 添加了限制显示的标签数量的功能。
- 添加了指定给定标签必须与多少个帖子相关联才能在下拉列表中显示的最小帖子数。
- 添加了指定标签显示顺序的选项。
- 添加了指定要包含在下拉列表中的标签列表的选项,扩展了排除某些标签的现有能力。
- 添加了显示未与任何帖子关联的标签的选项。
- 添加了
TagDropdown_get_tags
过滤器,以便高级用户能够修改传递给 WordPress 的get_tags
函数的参数。使用此过滤器,仍遵守裁剪、裁剪指示器和计数显示设置。
1.6
- 添加
TDW_direct()
函数。 - 将计数和排除选项添加到新的直接实现函数(
TDW_direct()
)。 - 修复了两个 XHTML 验证错误。
1.5.2
- 在停用插件时卸载标签排除列表。
1.5.1
- 将插件页面移至 ethitter.com。
1.5
- 添加了显示每个标签中帖子数量的选项。
1.4
- 添加了基于逗号分隔的别名列表排除标签的选项。
1.3
- 重写某些小部件元素以实现与版本 2.3 的兼容性。
1.2
- 添加了在停用插件时删除插件设置的函数。
1.1
- 添加了在直接调用函数时裁剪标签名称的能力。
升级通知
2.3.3
- 修复了用于加载插件文本域的钩子。
2.3.2
准备插件进行翻译。
2.3.1
现在与 PHP 7.3 兼容。
2.3
已更新以兼容WordPress 4.3。移除了PHP4风格的widget构造函数的使用(https://make.wordpress.org/core/2015/07/02/deprecating-php4-style-constructors-in-wordpress-4-3/)。
2.2
已更新以兼容WordPress 4.2。仅应使用2.2或更高版本与WordPress 4.2或更高版本一起使用,否则包含/排除的术语可能在下拉列表中再次出现。这是由于WordPress拆分共享术语,详情请参阅https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/。
2.1
虽然本版本中没有包含重大功能更改,但插件本身编写得更好,鼓励用户升级。现在已对下拉列表及其组件应用了一套过滤器,以实现更大的可定制性。
2.0.3
修复了WordPress 3.3及更高版本中导致空分类下拉列表的问题。同时移除了所有PHP短标签的使用。
2.0.2
允许在widget选项中留空标题。如果为空,则不会运行taxonomy_dropdown_widget_title
过滤器。
2.0.1
修复了在WordPress 3.0及更早版本中widget类中产生的导致程序崩溃的错误。
2.0.0.2
修复了设置帖子计数阈值时的一个轻微错误。
2.0.0.1
修复了一个在不需要时附加截断指示器的轻微错误。
2.0
该插件已被重命名,完全重写,并停止支持WordPress 2.7及更早版本。升级将删除所有现有的widget;请参阅FAQ以获取解释。查看变更日志和FAQ以获取更多信息。
1.7
这是标签下拉widget的重大修订。在升级之前,请注意,现在TDW_direct()
和makeTagDropdown()
都是已弃用的函数。此外,不能再根据slug排除标签。请参阅变更日志以获取全部详情。
1.6
将makeTagDropdown()
替换为TDW_direct()
函数,将帖子计数和排除选项添加到直接实现函数中。保留makeTagDropdown()
函数以支持向后兼容。修复了两个XHTML验证错误。