通过php添加并显示自定义标题小部件区域
Posted
技术标签:
【中文标题】通过php添加并显示自定义标题小部件区域【英文标题】:prepend and display custom header widget area via php 【发布时间】:2020-03-27 20:08:01 【问题描述】:所以在我的functions.php 中,我根据主题文档在正文之前添加了一个钩子。我还创建了一个小部件区域,我想将其作为前置内容,如下所示:
// 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 新手。提前致谢。
【问题讨论】:
【参考方案1】:那里只有几个错误。下面是两个示例...第一个更正代码中的错误,第二个只是编写与我在更正中所做的相同内容的另一种方式:
// 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>';
希望这会有所帮助!
【讨论】:
【参考方案2】:您是否在index.php
中添加了<?php do_action('before') ?>
?
https://developer.wordpress.org/reference/functions/do_action/
【讨论】:
以上是关于通过php添加并显示自定义标题小部件区域的主要内容,如果未能解决你的问题,请参考以下文章