Karol B.

Karol B. Ekspert ds. mediów
specjalistycznych

Temat: Nowe pole do wyświetlania widgetów

Ostatnio poszukiwałem rozwiązania nurtującego mnie od dłuższego czasu problemu - mianowicie jak stworzyć nowy obszar wyświetlania widgetów...

Dotychczas mieliśmy standardowe: Sidebar i Footer. Ale chciałbym utworzyć pole np. widgetbox.

Czy znacie sposób, aby coś takiego wykonać?
Łukasz Surdacki

Łukasz Surdacki Pl/SQL and C#
developer, Team
Leader

Temat: Nowe pole do wyświetlania widgetów

dołączam się do pyt6ania :) fajnie by było zrobić sobie znajdującego się w dowolnej lokalizacji diva w którym byłoby miejsce na widgety

Temat: Nowe pole do wyświetlania widgetów

W pliku functions.php powinien być taki kod lub podobny
function screens_widgets_init() {
register_sidebar( array(
'name' => __( 'Widget in the footer', 'screens' ),
'id' => 'footer-widget-area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );

}
add_action( 'widgets_init', 'screens_widgets_init' );

powiel tą część
register_sidebar( array(
'name' => __( 'Widget in the footer', 'screens' ),
'id' => 'footer-widget-area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
tylko zmień nazwę id 'id' => 'nowy-widget',

Ten kod wstaw w miejscu wyświetlania w szablonie
<?php if ( is_active_sidebar( 'nowy-widget' ) ) {
?>
<ul class="widget">
<?php dynamic_sidebar('nowy-widget'); ?>
</ul>
<?php } ?>
Jeżeli nie chcesz żeby była użyta lista to zmień before_widge i after_widget np na div, tylko pamiętaj o usunięciu <ul class="widget">, więcej masz tutaj
http://codex.wordpress.org/Widgets_API

Jeżeli chcesz wstawić jakiś widget który jest domyślny z wordpress możesz użyć funkcji
http://codex.wordpress.org/Function_Reference/the_widget
wtedy wystarczy wstawić w odpowiednim miejscu w szablonie np ten kod
<?php the_widget('WP_Widget_Tag_Cloud'); ?> - to jest lista tagów.Tomasz Mazur edytował(a) ten post dnia 31.08.12 o godzinie 16:36

Temat: Nowe pole do wyświetlania widgetów

W functions.php w katalogu szablonu wrzucacie:

if ( function_exists('register_sidebar') )
{
$args = array(
'name' => 'Jakas nazwa',
'before_widget' => '',
'after_widget' => ''
);
register_sidebar($args);
}


dalej w szablonie tam gdzie chcecie aby byl obszar widgetu:

<div id="mojWidget" class="widgetItem"><?php dynamic_sidebar( 'Jakas nazwa' ); ?></div>


Od teraz w panelu admina w widgetach mozecie tutaj wrzucac co dusza zapragnie.

edit: Widze, ze kolega Tomek byl szybszy. U mnie krocej... generalnie idee juz znacie.Mateusz Komarnicki edytował(a) ten post dnia 31.08.12 o godzinie 16:39

Temat: Nowe pole do wyświetlania widgetów

$args = array(
'name' => 'Jakas nazwa',
'before_widget' => '',
'after_widget' => ''
);


Jeżeli nie określisz before_widget i after_widget to domyśnie jest li więc powinno być
<ul id="mojWidget" class="widgetItem">Tomasz Mazur edytował(a) ten post dnia 31.08.12 o godzinie 17:03
Karol B.

Karol B. Ekspert ds. mediów
specjalistycznych

Temat: Nowe pole do wyświetlania widgetów

Działa wyśmienicie. Dziękuję za pomoc :)



Wyślij zaproszenie do