philipnewcomer/widget-output-filters

一个库,允许开发者过滤任何WordPress小工具的输出。

1.2.0 2016-09-12 20:21 UTC

This package is auto-updated.

Last update: 2024-09-21 20:12:58 UTC


README

允许开发者过滤任何WordPress小工具的输出。

有时开发者需要过滤没有内置输出过滤器的自定义小工具的输出。此插件提供了一个过滤器,允许开发者过滤任何小工具的输出,无论它是否具有本地的该功能。

此插件受到了Widget Logic插件中类似过滤器的启发,并在本质上复制了该功能,但提供了更大的灵活性。

用法

此插件提供了一个widget_output过滤器,它将传递四个参数:

  1. 小工具的完整HTML输出
  2. 小工具类型或基本 ID;例如metarecent-posts
  3. 完整的小工具ID;例如meta-2recent-posts-5
  4. 当前侧边栏的ID;例如sidebar-1

示例

function filter_widgets( $widget_output, $widget_type, $widget_id, $sidebar_id ) {

	if ( 'my_widget' == $widget_type ) {
		$widget_output = str_replace( 'something-to-find', 'something-to-replace', $widget_output );
	}

	return $widget_output;
}
add_filter( 'widget_output', 'filter_widgets', 10, 4 );

常见问题解答

我为什么不能直接在sidebar.php模板文件中使用输出缓冲,并在那里修改小工具输出?
可以,但这种方法在WordPress主题自定义器中不起作用,或者在其他地方使用小工具而不是输出缓冲的小工具区域。它还要求将输出缓冲区集成到主题中,并且没有提供一种简单的方法来仅针对特定的小工具或小工具类型。此插件为您提供了小工具类型和小工具ID参数,它在主题自定义器中工作,并且不需要主题的支持。

此插件与Widget Logic插件中已存在的widget_content过滤器相比,有什么优点?
此插件在其过滤器中提供了小工具类型(或基本 ID),除此外还提供了唯一的小工具ID。这使得可以针对特定类型的所有小工具进行定位,而无需使用复杂的正则表达式。此插件还提供了当前小工具所在的侧边栏的ID,允许您仅针对特定侧边栏中的小工具。使用Widget Logic过滤器,开发者在其过滤器函数中只能访问单独的小工具ID,这使得定位特定类型的所有小工具或特定侧边栏中的小工具变得更加困难。

如果我已经使用Widget Logic插件来控制小工具的可见性,此插件与Widget Logic的widget_content过滤器兼容吗?
是的,此插件与Widget Logic插件很好地共存。但是,如果您已经使用Widget Logic来管理小工具的可见性,那么您需要使用此插件的原因仅限于您需要此插件提供的额外灵活性。否则,Widget Logic的widget_content过滤器也能很好地完成这项工作。