我正在制作一个插件来显示站点的特色页面,但它取决于flex容器,我不能保证用户的侧栏会显示flex。
然而,为了解决我的问题,我找到了一个名为dynamic\\u sidebar\\u params的过滤器,它确实允许我更改所需侧栏的类,即包含插件小部件的类。问题是,这不会将CSS类添加到动态提要栏的包装器中。
对于包装器,我指的是侧栏文件中围绕dynamic\\u sidebar()函数的元素。例如:
侧边栏特色页面。php
<?php
if ( ! is_active_sidebar( \'featured-pages\' ) )
{
return;
} ?>
<section class="featured-pages">
<?php dynamic_sidebar( \'featured-pages\' ) ?>
</section>
我想做的是在该section元素中修改或添加一个新类,或者在用户的边栏包装器中添加一个新类。
这就是我所尝试的:
<?php
/**
* @package FeaturedPage
*/
namespace FeaturedPage\\Custom;
class Extras
{
/**
* Register default hooks and actions for WordPress
* @return
*/
public function register()
{
add_filter( \'dynamic_sidebar_params\', [ $this, \'add_sidebar_class\' ] );
}
/**
* Add a new CSS class to the sidebar containing the Featured Page widget(s)
* @param array $parameters The sidebar parameters array
* @return array $parameters The sidebar parameters array
*/
public function add_sidebar_class( $parameters )
{
if ( preg_match( \'/featured_page_widget-{0,}/\', $parameters[0][\'widget_id\'] ) )
{
$parameters[0][\'class\'] = \'featured-pages-flex-container\';
}
return $parameters;
}
}
这会在侧栏中添加一个类。但是,它不是一个CSS类,而是在注册侧栏时添加的类。但在
WordPress documentation it says 关于class参数:“应用于侧栏容器的CSS类”。
如何获取提要栏的包装?在这种情况下,该section元素是否具有一类特色页面?