2013-11-27 6 views
0

Я создаю новую тему Wordpress. Он работает, но не показывает панель виджетов в панели администратора. Вот мой код:Новая тема 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

ли вы регистрируете виджет в functions.php? – saifur

+0

@Saifur: ya sidebar.php уже создано –

+0

Вы зарегистрировали виджет в functions.php? – saifur

ответ

1

Добавьте следующий код в functions.php после функции ccp_widgets_init.

add_action('widgets_init', 'ccp_widgets_init'); 
0

Существует другой способ.

Определенно использовать детскую тему

В вашей папке ребенка темы:

  1. Создайте папку виджетов
  2. Поместите свой виджет там

т.е..

wp-content/themes/my-child-theme/widgets/my_widget.php 

в конце вашего виджета нет нет необходимости на «крючок», это в каких-либо действий, как это, как говорят большинство сообщений

function register__my_widget() { 
register_widget('my_widget_class_name_exends_WP_Widget_class'); 
} 

add_action('widgets_init', 'register__my_widget'); 

Так просто зарегистрировать его как обычно в конце с одна строка: - register_widget ('my_widget_class_name_exends_WP_Widget_class') смотри ниже:

<?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'); 

важный бит-й e last line - бит "register_widget".

Nb. все виджеты расширить WP_widget класс (я думаю, что это класс - будет в Java/C++), так что вы зарегистрировать ваше имя класса

3.Then вашего ребенка-темы functions.php годов добавить эту строку

get_template_part('widgets/my_widget'); 

и вы должны быть хорошими!

Nb:

  1. Линия добавлена ​​к Вашему ребенку темы functions.php должны быть добавлены вне любой функции
  2. Путь должен существовать то. Виджеты/
  3. Это должно быть имя файла Минусом .php часть

(Это не обязательно использовать отдельную папку, но это помогает держать код организованы и поэтому, если вы добавили папку виджетов в вашей дочерней теме и поставьте my_widget.php там, тогда точка действительна.

Если вы не добавить папку виджетов в папку ребенка темы, то вы бы просто использовать

get_template_part('my_widget'); 

вашего ребенка functions.php )

Что преимущество делает это сюда??

  • Вы можете разделить ваш код более модульным
  • Вы не в конечном итоге с монстра размером functions.php файл
  • Это должно быть легче поддерживать или изменять
Смежные вопросы