Понимание genesis_markup () в Genesis Framework - PullRequest
0 голосов
/ 18 сентября 2018

Я не понимаю, как функция genesis_markup превращается:

array(
    'open'  => '<aside class="widget-areainfo-onder-content">',
    'context' => 'widget-area-wrap',
    'echo'    => false,
    'params'  => array(
      'id'  => $id,
    )

в

"<div class="widget-area">"

Я не понимаю, почему идентификатор вообще не используется в выходных данных иКласс в стороне также не используется .... Я бы подумал, что это должно быть .....

Когда я делаю это в коде:

$before_markup_args = array(
    'open'  => '<aside class="widget-areainfo-onder-content">',
    'context' => 'widget-area-wrap',
    'echo'    => false,
    'params'  => array(
      'id'  => $id,
    )
  );

  d($before_markup_args);

  d(genesis_markup( $before_markup_args ));

1 Ответ

0 голосов
/ 31 июля 2019

Во-первых, я хотел бы подтвердить пропущенный пробел:

    ```
    $before_markup_args = array(
        'open'  => '<aside class="widget-area info-onder-content">',
        'context' => 'widget-area-wrap',
        'echo'    => false,
        'params'  => array(
           'id'  => $id,
        )
       );
       ```

"Onder" в переводе с голландского означает "ниже".Таким образом, «info-onder-content» означает «info-under-content».Возможно название для области виджета.

Это пример кода, который используется для функции genesis_widget_area, обычно находящейся в файле functions.php в дочерней теме WordPress Genesis.

$widget_area_args = array('before' => genesis_markup($before_markup_args),
        );
genesis_widget_area($id, $widget_area_args);

Мы можем понять, как это работает, посмотрев определение функции genesis_widget_area в файле /var/www/html/wp-content/themes/genesis/lib/functions/widgetize.php.

function genesis_widget_area( $id, $args = array() ) {

    if ( ! $id ) {
        return false;
    }

    $defaults = apply_filters(
        'genesis_widget_area_defaults',
        array(
            'before'              => genesis_markup(
                array(
                    'open'    => '<aside class="widget-area">' . genesis_sidebar_title( $id ),
                    'context' => 'widget-area-wrap',
                    'echo'    => false,
                    'params'  => array(
                        'id' => $id,
                    ),
                )
            ),
            'after'               => genesis_markup(
                array(
                    'close'   => '</aside>',
                    'context' => 'widget-area-wrap',
                    'echo'    => false,
                )
            ),
            'default'             => '',
            'show_inactive'       => 0,
            'before_sidebar_hook' => 'genesis_before_' . $id . '_widget_area',
            'after_sidebar_hook'  => 'genesis_after_' . $id . '_widget_area',
        ),
        $id,
        $args
    );

    $args = wp_parse_args( $args, $defaults );

    if ( ! $args['show_inactive'] && ! is_active_sidebar( $id ) ) {
        return false;
    }
...