tfrommen/meta-taxonomy

此插件注册了一个分类法,提供了一种基于元数据的高性能方式来查询文章。

安装: 8

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 0

开放性问题: 0

类型:wordpress-plugin

v1.3.0 2015-10-22 19:50 UTC

This package is auto-updated.

Last update: 2024-09-15 15:23:09 UTC


README

Latest Stable Version Project Status Build Status License

您是否曾经希望根据特定元数据是否设置或等于给定值来查询文章,但后来听说/了解到(复杂的)元数据查询实际上非常低效?

这正是 元分类法 发挥作用的时候。

免责声明:此插件并不打算在一般情况下取代文章元数据API。在许多情况下,使用文章元数据比使用术语更有意义,或者在某些情况下,使用术语是根本不可能的。

安装

  1. 下载ZIP文件.
  2. 将内容上传到您的Web服务器上 /wp-content/plugins 目录。
  3. 通过WordPress的 插件 菜单激活插件。
  4. 您将惊叹于您的 meta-tax 查询速度有多快,与普通的元数据查询相比。

使用方法

老实说,这个插件没什么大不了的。它只是提供了一个单点解决方案,让您可以使用基于高性能分类法的元数据查询。一旦插件激活,您就可以将新元数据分类法的术语分配给您的文章,然后以非常高效的方式查询文章(与元数据查询相比)。

过滤器

为了自定义插件的一些方面,它为您提供了一些过滤器。以下是每个过滤器的简短描述以及如何修改默认行为的代码示例。只需将相应的代码片段放入您的主题的 functions.php 文件或您的 自定义 插件,或放入其他合适的位置。

meta_taxonomy_args

如果您想修改特定的分类法参数但找不到合适的过滤器,那么有 meta_taxonomy_args,它为您提供完整的参数数组。

/**
 * Filters the taxonomy args.
 *
 * @param array $args Taxonomy args.
 */
add_filter( 'meta_taxonomy_args', function( $args ) {

	// Turn the whole taxonomy UI invisible
	$args[ 'show_ui' ] = FALSE;
	
	return $args;
} );

meta_taxonomy_capabilities

此过滤器为您提供执行四个特定分类法操作的所需权限 manage_termsedit_termsdelete_termsassign_terms

/**
 * Filters the taxonomy capabilities.
 *
 * @param string[] $capabilities Taxonomy capabilities.
 */
add_filter( 'meta_taxonomy_capabilities', function( $capabilities ) {

	// Let meta taxonomy terms be deleted by admins only
	$capabilities[ 'delete_terms' ] = 'manage_options';
	
	return $capabilities;
} );

meta_taxonomy_description

如果您想修改分类法描述,请通过此过滤器自由修改。

/**
 * Filters the taxonomy description.
 *
 * @param string $description Taxonomy description.
 */
add_filter( 'meta_taxonomy_description', function() {

	// Kill the description
	return '';
} );

meta_taxonomy_labels

如果您不喜欢标签,可以轻松地根据您的喜好进行修改。

/**
 * Filters the taxonomy labels.
 *
 * @param string[] $labels Taxonomy labels.
 */
add_filter( 'meta_taxonomy_labels', function( $labels ) {
	
	// A little more horror, please...
	$labels[ 'not_found' ] = 'ZOMG, no metas found!!1!!1!!oneone!!!1!eleven!1!';
	
	return $labels;
} );

meta_taxonomy_name

是的,您也可以修改分类法名称(别名)。

/**
 * Filters the taxonomy name.
 *
 * @param string $name Taxonomy name.
 */
add_filter( 'meta_taxonomy_name', function() {
	
	// Rename it
	return 'meta_term';
} );

meta_taxonomy_object_type

默认情况下,元数据分类法只为默认文章(即,文章类型 post)注册。如果您想添加其他自定义文章类型,请使用此过滤器。您可以返回单个文章类型别名,或者它们的数组。

/**
 * Filters the taxonomy object types.
 *
 * @param string[] $object_types Array of names of object types for the taxonomy.
 */
add_filter( 'meta_taxonomy_object_types', function( $object_types ) {
	
	// Add the taxonomy for pages and a CPT, too
	return array_unique( array_merge( (array) $object_types, array(
			'page',
			'my_cpt',
	) ) );
} );

函数

为了使用特定的功能,可能已经有一个函数。为了避免任何不兼容性,所有全局插件函数都是可插拔的。在极少数情况下,如果您已经有一个与插件函数同名且位于全局命名空间中的函数,您将必须自己设置此类函数。原则上,这只是复制了您可以在 此插件functions.php 文件中找到的内容。

has_meta_term

如果您想检查特定文章是否具有特定的元数据术语,您可以通过插件中的 has_meta_term 函数来做到这一点。

if ( has_meta_term( get_the_ID(), 'popular' ) ) {
	// Do something
}

贡献

如果您有功能请求,或者如果您已经开发了这个功能,请随时使用问题和/或拉取请求部分。

当然,如果您想使用插件在尚未包含的语言中,也可以提供翻译。

更新日志

更新日志