我正在创建新的Wordpress主题。它正在工作,但没有在管理面板中显示小部件栏。 这是我的代码:
<?php get_header(); ?>
<div class="wrapper">
<!--Navigation start-->
<div class="navigation_content">
<nav>
<ul>
<?php $args = array(
'depth' => 0,
'sort_column' => 'menu_order, post_title',
'menu_class' => 'menu',
'include' => '',
'exclude' => '',
'echo' => true,
'show_home' => true,
'link_before' => '',
'link_after' => '' );
?>
<li class=""><?php wp_page_menu( $args ); ?></li>
</ul>
</nav>
</div>
<!--Navigation start-->
<!-- body content start-->
<div class="body_content">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!--end post header-->
<div class="entry clear">
<?php if ( function_exists( 'add_theme_support' ) ) the_post_thumbnail(); ?>
<p><?php the_content(); ?></p>
<?php //edit_post_link(); ?>
<?php wp_link_pages(); ?>
</div><!--end entry-->
</div><!--end post-->
<?php endwhile; /* rewind or continue if all posts have been fetched */ ?>
<?php else : ?>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
这是我的函数文件代码来注册小部件:
function ccp_widgets_init() {
register_sidebar( array(
'name' => __( 'Main Widget Area', 'ccp' ),
'id' => 'sidebar-1',
'description' => __( 'Appears in the footer section of the site.', 'ccp' ),
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
我错过了代码吗?
由于
答案 0 :(得分:1)
在ccp_widgets_init函数之后的functions.php中添加以下代码。
add_action( 'widgets_init', 'ccp_widgets_init' );
答案 1 :(得分:0)
还有另一种方式。
绝对使用儿童主题
在您的子主题文件夹中:
即。
wp-content/themes/my-child-theme/widgets/my_widget.php
在您的小部件的末尾有不需要来挂钩&#39;它像大多数帖子所说的那样进行任何行动
function register__my_widget() {
register_widget( 'my_widget_class_name_exends_WP_Widget_class' );
}
add_action( 'widgets_init', 'register__my_widget' );
所以最后只需一行就可以正常注册: - register_widget(&#39; my_widget_class_name_exends_WP_Widget_class&#39;)见下文:
<?php function get_recent_post( $beforewidget, $afterwidget, $beforetitle, $aftertitle ){ ?>
<?php echo $beforewidget; ?>
<?php echo $beforetitle; ?>Recent Posts<?php echo $aftertitle; ?>
<ul class="rp-widget">
<?php query_posts( array ( 'category_name' => 'blog', 'posts_per_page' => -1 ) );
while ( have_posts() ) : the_post(); ?>
<li>....
....very boring widget code, yawn...
...instance ) {
// outputs the content of the widget
get_recent_post( $args['before_widget'], $args['after_widget'], $args['before_title'], $args['after_title'] );
}
}
register_widget( 'my_widget_class_name_exends_WP_Widget_class' );
重要的一点是最后一行 - &#34; register_widget&#34;位。
的Nb。所有小部件都扩展了WP_widget类(我认为它是一个类 - 将在java / c ++中)所以你注册了你的类名
3.然后在你的孩子 - 主题的函数中.php添加这一行
get_template_part('widgets/my_widget');
你应该很时髦!
Nb:
(使用单独的文件夹并不是必需的,但它有助于保持代码的有序性,因此如果您在子主题中添加了一个小部件文件夹并将my_widget.php放在那里,那么point是有效的。
如果您没有在您的子主题文件夹中添加小部件文件夹,那么您只需使用
get_template_part('my_widget');
在你的孩子的function.php中 )
这样做有什么好处?