WordPress:将小部件区域添加到主页面模板?
WordPress: Adding a widget area to the primary page template?
我正在尝试向 page.php 的主体添加一个小部件区域,以便我可以在网站的每个页面上放置独特的小部件。我已按照此处的说明进行操作:http://codex.wordpress.org/Widgetizing_Themes
我在我的主题 functions.php 中添加了这个:
function arphabet_widgets_init() {
register_sidebar( array(
'name' => 'Main widget',
'id' => 'main_widget_area',
'before_widget' => '<div>',
'after_widget' => '</div>',
'before_title' => '<h2 class="rounded">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'arphabet_widgets_init' );
这是page.php:
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php if ( is_active_sidebar( 'main_widget_area' ) ) : ?>
<div id="main-widget" class="widget-area main-widget">
<?php dynamic_sidebar( 'main_widget_area' ); ?>
</div><!-- #primary-sidebar -->
<?php endif; ?>
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<?php if ( has_post_thumbnail() && ! post_password_required() ) : ?>
<div class="entry-thumbnail">
<?php the_post_thumbnail(); ?>
</div>
<?php endif; ?>
<h1 class="entry-title"><?php the_title(); ?></h1>
</header><!-- .entry-header -->
<div class="entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentythirteen' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?>
</div><!-- .entry-content -->
<footer class="entry-meta">
<?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?>
</footer><!-- .entry-meta -->
</article><!-- #post -->
<?php comments_template(); ?>
<?php endwhile; ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
(我添加了顶部部分,main_widget_area)
但是,当我编辑页面时,我看不到放置小部件的方法。我不确定我是否遗漏了一个步骤,或者我是否没有以正确的方式编辑页面。
查看 WordPress 后端 "Appearance" 下方的 "Widgets" 菜单。页面左侧将有一个小部件列表,右侧有一个可用侧边栏列表。只需将您想要的小部件拖放到您注册的侧边栏中,您就可以开始了。
我正在尝试向 page.php 的主体添加一个小部件区域,以便我可以在网站的每个页面上放置独特的小部件。我已按照此处的说明进行操作:http://codex.wordpress.org/Widgetizing_Themes
我在我的主题 functions.php 中添加了这个:
function arphabet_widgets_init() {
register_sidebar( array(
'name' => 'Main widget',
'id' => 'main_widget_area',
'before_widget' => '<div>',
'after_widget' => '</div>',
'before_title' => '<h2 class="rounded">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'arphabet_widgets_init' );
这是page.php:
get_header(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php if ( is_active_sidebar( 'main_widget_area' ) ) : ?>
<div id="main-widget" class="widget-area main-widget">
<?php dynamic_sidebar( 'main_widget_area' ); ?>
</div><!-- #primary-sidebar -->
<?php endif; ?>
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header">
<?php if ( has_post_thumbnail() && ! post_password_required() ) : ?>
<div class="entry-thumbnail">
<?php the_post_thumbnail(); ?>
</div>
<?php endif; ?>
<h1 class="entry-title"><?php the_title(); ?></h1>
</header><!-- .entry-header -->
<div class="entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentythirteen' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?>
</div><!-- .entry-content -->
<footer class="entry-meta">
<?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?>
</footer><!-- .entry-meta -->
</article><!-- #post -->
<?php comments_template(); ?>
<?php endwhile; ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
(我添加了顶部部分,main_widget_area)
但是,当我编辑页面时,我看不到放置小部件的方法。我不确定我是否遗漏了一个步骤,或者我是否没有以正确的方式编辑页面。
查看 WordPress 后端 "Appearance" 下方的 "Widgets" 菜单。页面左侧将有一个小部件列表,右侧有一个可用侧边栏列表。只需将您想要的小部件拖放到您注册的侧边栏中,您就可以开始了。