遵循我的my previous question, 我可以让我的皮肤覆盖我想从父级修改的功能。
该功能所做的基本上是为网站构建标题图像,我正试图在标题图像部分下面添加一个小部件区域。
类似这样:
<div id="header-text-nav-container" class="clearfix">
//...
<div id="wp-custom-header" class="wp-custom-header">
<div class="header-image-wrap"> header image is displayed here </div>
<div id="header-image-widget-area"> my widget should be displayed here</div>
</div>
</div>
因此,我创建了小部件(如果我将其插入到页面上的任何可用挂钩上,效果会很好),然后修改了函数以添加显示小部件的部分。以下是参考代码:
/**************************/
/* Register My Widget
/**************************/
add_action( \'widgets_init\', \'my_register_widget\' );
function my_register_widget() {
register_sidebar(
array(
\'id\' => \'header_image_widget\',
\'name\' => __( \'(my) Widget over Header Image\' ),
\'description\' => __( \'My widget to be displayed over the header image.\' ),
\'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h3 class="widget-title">\',
\'after_title\' => \'</h3>\'
)
);
/* Repeat register_sidebar() code for additional widgets. */
}
/**********************************************/
/* Header image function replacement
/**********************************************/
// this makes wp run my function after the parent one, because my priority is 20 and the parent priority is defined to 10
add_filter( \'get_header_image_tag\', \'my_colormag_header_image_markup\', 20, 3 );
// Filter the get_header_image_tag() for option of adding the link back to home page option
function my_colormag_header_image_markup( $html, $header, $attr ) {
$output = \'\';
$header_image = get_header_image();
if( ! empty( $header_image ) ) {
$output .= \'<div class="header-image-wrap"> <img src="..."> </div>\';
/* adding my widget to the header image */
if ( is_active_sidebar( \'header_image_widget\' ) ) {
//-- my widget area starts here --
$output .= \'<div id="header-image-widget-area">\' . dynamic_sidebar( \'header_image_widget\' ) . \'</div>\';
//-- my widget area ends here --
}
}
return $output;
}
因此,正如您所看到的,我所做的(并且正在尝试做的)是将小部件添加到标题图像之后的一个部分中
div
. 因此,我将节的代码附加到
$output
还添加了
dynamic_sidebar( \'header_image_widget\' )
这样小部件就可以在该div中呈现(…我想…)。
测试后,我意识到它不起作用(至少如我所料)。这个div
截面内部为1(对应于TRUE
他选择了哪个dynamic_sidebar
因为小部件执行正确),小部件并没有添加到我定义的部分中,而是实际添加了before 收割台部分和outside 定义标题图像和sectionI的部分。我得到了这样的东西:
<div id="header-text-nav-container" class="clearfix">
//...
<div id="widget-name-9"> this is the widget code defined by my widget </div>
<div id="wp-custom-header" class="wp-custom-header">
<div class="header-image-wrap"> header image is displayed here </div>
<div id="header-image-widget-area"> 1 </div>
</div>
</div>
所以,我的问题是,我想问任何人,如何知道问题是什么-如何将小部件添加到
$output
字符串以使其显示在
header-image-widget-area
节(而不是1/true)?
提前非常感谢您提供的任何帮助
米格尔