通过 php 添加和显示自定义 header 小部件区域
prepend and display custom header widget area via php
所以在我的 functions.php 中,根据主题文档,我在 body 之前的前置内容中有一个钩子。我还创建了一个小部件区域,我想将其作为前置内容,如下所示:
// create custom header widget area
function wpb_widgets_init() {
register_sidebar( array(
'name' => 'Custom Header Widget Area',
'id' => 'custom-header-widget',
'before_widget' => '<div class="chw-widget">',
'after_widget' => '</div>',
'before_title' => '<h2 class="chw-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'wpb_widgets_init' );
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
echo <?php
if ( is_active_sidebar( 'custom-header-widget' ) ) : ?>
<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
<?php dynamic_sidebar( 'custom-header-widget' ); ?>
</div>
<?php endif; ?>;
}
我的语法一定有问题 - 我完全是 php 新手。提前致谢。
里面只有一些错误。下面是两个例子......第一个纠正了你代码中的错误,第二个只是另一种方式来写我在更正中所做的同样的事情:
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
// open if statement
if ( is_active_sidebar( 'custom-header-widget' ) ) :
// close php for html
?>
<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
<?php dynamic_sidebar( 'custom-header-widget' ); ?>
</div>
<?php // re open php
// close if statement
endif;
}
或者你可以这样写:
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
if ( is_active_sidebar( 'custom-header-widget' ) ) {
echo '<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">';
dynamic_sidebar( 'custom-header-widget' );
echo '</div>';
}
}
希望对您有所帮助!
您是否在 index.php
中添加了 <?php do_action('before') ?>
?
https://developer.wordpress.org/reference/functions/do_action/
所以在我的 functions.php 中,根据主题文档,我在 body 之前的前置内容中有一个钩子。我还创建了一个小部件区域,我想将其作为前置内容,如下所示:
// create custom header widget area
function wpb_widgets_init() {
register_sidebar( array(
'name' => 'Custom Header Widget Area',
'id' => 'custom-header-widget',
'before_widget' => '<div class="chw-widget">',
'after_widget' => '</div>',
'before_title' => '<h2 class="chw-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'wpb_widgets_init' );
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
echo <?php
if ( is_active_sidebar( 'custom-header-widget' ) ) : ?>
<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
<?php dynamic_sidebar( 'custom-header-widget' ); ?>
</div>
<?php endif; ?>;
}
我的语法一定有问题 - 我完全是 php 新手。提前致谢。
里面只有一些错误。下面是两个例子......第一个纠正了你代码中的错误,第二个只是另一种方式来写我在更正中所做的同样的事情:
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
// open if statement
if ( is_active_sidebar( 'custom-header-widget' ) ) :
// close php for html
?>
<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
<?php dynamic_sidebar( 'custom-header-widget' ); ?>
</div>
<?php // re open php
// close if statement
endif;
}
或者你可以这样写:
// prepend and display custom header widget area
add_action( 'before', 'uncode_child_hook_before' );
function uncode_child_hook_before(){
if ( is_active_sidebar( 'custom-header-widget' ) ) {
echo '<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">';
dynamic_sidebar( 'custom-header-widget' );
echo '</div>';
}
}
希望对您有所帮助!
您是否在 index.php
中添加了 <?php do_action('before') ?>
?
https://developer.wordpress.org/reference/functions/do_action/