Wordpress Як дадаць клас <уль> з бакавы панэлі віджэтаў

Гэта, як я зарэгістраваць бакавую панэль:

register_sidebar(array(
    'name' => 'First_sidebar',
    'id' => 'sidebar-1',
    'before_widget' => '<div class="well">',
    'after_widget' => '</div>',
    'before_title' => '

', 'after_title' => '

'
));

і гэта выхад HTML WordPress:

<div class="well">

title


</div>

I want to add a class attribute to the

    tag.
    Like this:
    <div class="well">
        

    title

        
    </div>
    

    How do I add the class attribute to

      ?
5
Хіба вы не можаце проста змяніць sidebar.php?
дададзена аўтар Paulo Bu, крыніца
Я выкарыстоўваю функцыю dynamic_sidebar
дададзена аўтар Qing, крыніца
Тое ж пытанне тут, так як я хацеў бы дадаць BS клас нав да вул. Я рэдагаваў /wp-includes/nav-menu-template.php Змяніць масіў $ налады па змаўчанні ўнутры функцыі wp_nav_menu() ... дадаць разметку вам патрабуецца, каб "items_wrap. Hacky, але пачатак. WP 4.7.2
дададзена аўтар Grogenstein, крыніца

9 адказы

Просты, але не так добра і больш хаку, выкарыстоўвае Javascript/JQuery.

jQuery( document ).ready(function() {
    jQuery('.widget > ul').addClass('nav nav-list');
});

Я вельмі не люблю, выкарыстоўваючы JavaScript, але гэта робіць працу ў гэтым выпадку.

4
дададзена
На ўсялякі выпадак, ёсць нямала спосабаў, каб дадаць JavaScript для WordPress. Некаторыя больш правільна, чым іншыя, але вы можаце звярнуцца да (дакументацыя) [ codex.wordpress.org/Using_Javascript]</а>
дададзена аўтар toto_tico, крыніца

Мне ўдалося зрабіць гэта такім чынам:

sidebar.php:

<!-- sidebar -->
<!-- /sidebar -->

I used output buffering to save the sidebar widgets into a variable and then used string replace to find all

    tags and replace them with the
      tag with the class.
3
дададзена

you can use a plugin that called widget-css-class WordPress directory

Пасля гэтага вы зможаце дадаць карыстацкі клас CSS для любых віджэтаў, якія вам патрэбныя.

2
дададзена
Ўстаноўка усяго убудова для такой маленькай функцыі хутка надзімацца асяроддзя. Акрамя таго, гэты убудова здаецца, што гэта дазваляе вам магчымасць ўнутры WP-Admin, здаецца OP імкнецца справіцца з гэтым у межах .php файлаў шаблоны.
дададзена аўтар domdambrogia, крыніца

I was struggling against this problem and I discovered that you can use this plugin: http://wordpress.org/plugins/wp-bootstrap-navmenu

1
дададзена

Выкарыстоўвайце Мінус:

.widget ul {
    .nav;
    .nav-pills;
    .nav-stacked;
}

ён працаваў на мяне;)

1
дададзена

Я гуляў з ім, і гэта працуе для мяне.

function create_widget( $name, $id, $class, $description ) {
    register_sidebar(array(
        'name' => __( $name ),
        'id' => $id,
        'class' => $class,
        'description' => __( $description ),
        'before_widget' => '<div ' . 'class ='. $class . '>',
        'after_widget' => '</div>',
        'before_title' => '

', 'after_title' => '

'
    ));

create_widget( 'widget name', 'myID', 'myClass', 'my description' );
1
дададзена
Вы павінны таксама дадаць некалькі радкоў апісання, каб растлумачыць сваю логіку/код
дададзена аўтар AADProgramming, крыніца

Існуе ураджэнец рашэння, каб дадаць асобныя імёны віджэтаў, як Classname з дапамогай Sprintf ў іх кантэйнер:

%1$s represents the id and %2$s the widgets className

There is no need to add the className directly to the

    because of this possible selector(jQuery/CSS):
    .widget_nav-list > ul (.widget_nav_menu > ul)
    

    Таксама зьвярніце ўвагу, што адказала мэта коды jQuery ўсе фішкі ва ўсіх ўрэзка, нават калі яны не зьяўляюцца не нав-ліста (тое, што можа быць добра, калі ваш выкарыстоўваюцца толькі віджэт нав).

    <�Р> before_widget - HTML, каб змясціць перад кожным віджэт (па змаўчанні:
  • ) Заўвага: выкарыстоўваецца Sprintf для падстаноўкі зменных </р>

    Спасылка на wordpress.org

    functions.php:

    register_sidebar(array(
      'name' => 'First_sidebar',
      'id' => 'sidebar-1',
      'before_widget' => '<div id="%1$s" class="well %2$s">',
      'after_widget' => '</div>',
      'before_title' => '

    ', 'after_title' => '

    '
    ));
    

    Выхад для навігацыі па змаўчанні віджэт:

    <div id="nav_menu-1" class="well widget_nav_menu">
      

    title

      
    </div>
    

    Я адпраўляю ў гэтай старой тэме, таму што гэта быў верхні вынік пошуку для пошуку «register_sidebar widgetname» - так я думаў, маючы поўны адказ тут добра.

0
дададзена

The parameter you are looking for is 'class' => ''

Для вас, вам трэба:

register_sidebar(array(
    'name' => 'First_sidebar',
    'id' => 'sidebar-1',
    'class'         => 'nav-list',
    'before_widget' => '<div class="well">',
    'after_widget' => '</div>',
    'before_title' => '

', 'after_title' => '

'
));

Гэта павінна працаваць.

0
дададзена
клас не працуе для мяне
дададзена аўтар toto_tico, крыніца
У мяне дакладна гэтая праблема
дададзена аўтар toto_tico, крыніца
(Док) [ codex.wordpress.org/Function_Reference/register_sideba‌ г] кажа : клас - імя класа CSS, каб прысвоіць віджэт HTML (па змаўчанні: пуста).
дададзена аўтар toto_tico, крыніца
гэта правільна, за выключэннем таго, што я выкарыстоўваю самазагрузкі, і мне трэба дадаць клас у уль выкарыстоўваць стыль. У адваротным выпадку зменіце крыніцы пачатковай загрузкі.
дададзена аўтар toto_tico, крыніца
З Кодэксу: «клас - клас CSS, каб прызначыць на бакавую панэль у Appearance -> Widget адмін старонка Гэты клас будзе з'яўляцца толькі ў крыніцы старонкі адміністратара WordPress Widget Гэта не будзе ўключана ў інтэрфейсе вашага сайта ... "
дададзена аўтар Edd, крыніца
@EliranEfron, тут: codex.wordpress.org/Function_Reference/register_sidebar - зьвярніце ўвагу на параметры частку. Гэта не працуе для мяне ...
дададзена аўтар Edd, крыніца
ўласцівасць «клас» дадае клас да ўсёй бакавой панэлі, а не вул віджэт. Вы павінны выкарыстоўваць «before_widget», каб змясціць DIV з імем класа, а затым з дапамогай CSS перайсці да яго, як: .className уль {/ * Уласцівасці * /}
дададзена аўтар Eliran Efron, крыніца
Вы можаце выкарыстоўваць JQuery, каб зрабіць гэта :. <�Код> $ ( 'імя класа уль') addClass ( 'newClassNameToAdd');
дададзена аўтар Eliran Efron, крыніца
Эй @Edd просьба даць спасылку, дзе вы чыталі, я думаю, вы зразумелі гэта .... я ведаю, за тое, што гэта працуе ...
дададзена аўтар Eliran Efron, крыніца
ну прывыклі працаваць ... так, як вы ўсё яшчэ можаце выкарыстоўваць before_widget напісаць Div абгортку з класам вы хочаце, і затым .class_name уль {/ * CSS код * /}
дададзена аўтар Eliran Efron, крыніца
Эй, вы можаце размясціць свой код тут, так што я мог бы паглядзець?
дададзена аўтар Eliran Efron, крыніца

Выкарыстанне карыстацкага WordPress фішкі: (няма неабходнасці ў jQuery або любы убудова !!)

Мае крокі будуць праходзіць з катэгорыямі віджэтаў, і вы можаце зрабіць тое ж самае для любога фішкі.

  1. Рэгістрацыя віджэт (у functions.php)
    add_action('widgets_init', 'register_widgets');
    function register_widgets($id) {
      register_sidebar(array(
        'name' => 'Sidebar',
        'id'  => 'sidebar'
      ));
    }

  1. Рэгістрацыя Custom Widget (у functions.php)
    add_action('widgets_init', 'register_custom_widget');
    function register_custom_widget() {
      register_widget('WP_Widget_Categories_Custom');
    }

  1. Copy file class-wp-widget-categories.php from /wp-includes/widgets/ and put it beside your theme files /wp-content/themes/-your theme-/widgets/

  2. Include this file in functions.php

    require_once('widgets/class-wp-widget-categories.php');

  3. Rename class name from "WP_Widget_Categories" to "WP_Widget_Categories_Custom" in "widgets/class-wp-widget-categories.php" file.

    class WP_Widget_Categories_Custom extends WP_Widget {

  4. Search about ul tag in "widgets/class-wp-widget-categories.php" file and edit it like

Гэта ўсё ;)

0
дададзена