2013-09-06 2 views
2

Я читал через Wordpress Source, пытаясь лучше понять, как визуализируются динамические боковые панели.Как выглядят визуальные виджеты боковой панели Wordpress?

Однако я ударяя мертвую точку ...

894 | do_action('dynamic_sidebar', $wp_registered_widgets[$id]); 

Я не могу найти, где определяется add_action ('dynamic_sidebar', ...). Без этой части я как бы теряюсь в том, что происходит.

Смотрите код здесь:

https://github.com/WordPress/WordPress/blob/b7c13e27c255e1fc1f03ab2ab432f1652a0ac212/wp-includes/widgets.php#L894

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

мне нужно более точное управление, чем dynamic_sidebar(...); дает мне

+0

Кажется, у вас есть 3 вопроса в одном: 1) Что делает линия 894. 2) Возьмите виджеты с определенной боковой панели. 3) Отметьте это виджеты по-своему. , , , Я подозреваю, что '1' не поможет с' 2' и '3', и, возможно, они заслуживают отдельных Вопросов и исследований. – brasofilo

ответ

1

Ну, что конкретная линия позволяет вам получить доступ каждого зарегистрированного виджета свойства, и он используется как:

<?php 
/* Plugin Name: Test registered widgets */ 

add_action('dynamic_sidebar', 'sidebar_widgets_so_18666065'); 

/** 
* As this is an action hook, we don't return nothing 
* use the passed values to do your stuff 
*/ 
function sidebar_widgets_so_18666065($registered_widget) 
{ 
    # Each registered widget passes the following array 
    /* 
    $registered_widget = Array 
    (
     [name] => Meta 
     [id] => meta-2 
     [callback] => Array 
      (
       [0] => WP_Widget_Meta Object 
        (
         [id_base] => meta 
         [name] => Meta 
         [widget_options] => Array 
          (
           [classname] => widget_meta 
           [description] => Log in/out, admin, feed and WordPress links 
          ) 

         [control_options] => Array 
          (
           [id_base] => meta 
          ) 

         [number] => 2 
         [id] => meta-2 
         [updated] => 
         [option_name] => widget_meta 
        ) 

       [1] => display_callback 
      ) 

     [params] => Array 
      (
       [0] => Array 
        (
         [number] => 2 
        ) 

      ) 

     [classname] => widget_meta 
     [description] => Log in/out, admin, feed and WordPress links 
    ) 
    */ 
} 

Relevant search query на WordPress ответы.

+0

Я также задал этот вопрос на WP Exchange, и похоже, что display_callback фактически является функцией, которая отображает виджет. Это верно? –

+0

Не совсем уверен, что это за ссылка на WPSE? – brasofilo

+0

http://wordpress.stackexchange.com/questions/113243/how-are-dynamic-sidebar-widgets-rendered/113245?noredirect=1#113245 –

Смежные вопросы