Поддержка Темы и шаблоны Уникальный класс для виджетов

  • Решено Anonymous User 14379775

    (@anonymized-14379775)


    Речь о довольно популярной теме
    https://wordpress.org/themes/enigma/
    Это такие авторы криворукие, что все виджеты имеют одинаковый класс?
    Надо применить стили к отдельному виджету, а уникальных классов или id они не имеют…

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Да, это недосмотр авторов темы. Обычно при регистрации сайдбара в параметре before_widget указано примерно следующее:

    <section id="%1$s" class="widget %2$s">

    Здесь %1$s — уникальный ID виджета, %2$s — его класс.

    В теме Enigma ID отсутствует, а класс задан один для всех виджетов:

    <div class="enigma_sidebar_widget">

    Надо применить стили к отдельному виджету, а уникальных классов или id они не имеют…

    Можно в дочерней теме отключить функцию weblizar_widgets_init() и подключить вместо неё исправленный вариант:

    remove_action( 'widgets_init', 'weblizar_widgets_init' );
    
    function my_widgets_init() {
    	register_sidebar( array(
    		'name' => __( 'Sidebar', 'enigma' ),
    		'id' => 'sidebar-primary',
    		'description' => __( 'The primary widget area', 'enigma' ),
    		'before_widget' => '<div id="%1$s" class="enigma_sidebar_widget %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<div class="enigma_sidebar_widget_title"><h2>',
    		'after_title' => '</h2></div>'
    	) );
    
    	register_sidebar( array(
    		'name' => __( 'Footer Widget Area', 'enigma' ),
    		'id' => 'footer-widget-area',
    		'description' => __( 'footer widget area', 'enigma' ),
    		'before_widget' => '<div id="%1$s" class="col-md-3 col-sm-6 enigma_footer_widget_column %2$s">',
    		'after_widget' => '</div>',
    		'before_title' => '<div class="enigma_footer_widget_title">',
    		'after_title' => '<div class="enigma-footer-separator"></div></div>',
    	) );
    }
    add_action( 'widgets_init', 'my_widgets_init' );

    Автор Anonymous User 14379775

    (@anonymized-14379775)

    Круто, спасибо.
    Вроде даже в кодексе правильный пример для register_sidebar приведен, а они решили пойти своим путем…

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Уникальный класс для виджетов» закрыта для новых ответов.