Geek tričko zdarma Týden návrhu sw
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Využij až 80% slevu na kurzy Návrhu Software

Diskuze: Divné zobrazování shortcode ve wordpressu

Aktivity (1)
Avatar
Jan Novák
Člen
Avatar
Jan Novák:24.6.2018 9:57

Ahoj, přidal jsem si shortcode na zobrazení výpisu kategorií dle navštívené stránky. Do functions.php:

function rubrikyDoWidgetu(){
$stranky=array('weby','basnicky');
$kategorie=array('weby'=>14,'basnicky'=>12);
foreach($stranky as $stranka){
    if ( is_page($stranka)==1) {
      $args = array(

                        'child_of'            => $kategorie[$stranka],
                        'current_category'    => $kategorie[$stranka],
                        'depth'               => 0,
                        'echo'                => 1,
                        'exclude'             => '',
                        'exclude_tree'        => '',
                        'feed'                => '',
                        'feed_image'          => '',
                        'feed_type'           => '',
                        'hide_empty'          => 0,
                        'hide_title_if_empty' => false,
                        'hierarchical'        => true,
                        'order'               => 'ASC',
                        'orderby'             => 'name',
                        'separator'           => '<br />',
                        'show_count'          => 1,
                        'show_option_all'     => '',
                        'show_option_none'    => __( 'No categories' ),
                        'style'               => 'list',
                        'taxonomy'            => 'category',
                        'title_li'            => __( 'Categories' ),
                        'use_desc_for_title'  => 0,
      );
    };
};
$categories = wp_list_categories($args);
if ( $categories ) {
        echo $categories;
};
};

add_shortcode('rubrWidget','rubrikyDoWidgetu');

Vcelku to funguje, ale ze zcela mě neznámého důvodu, se výsledný seznam nezobrazí např. do widgetu, ale nad něj...t.j mezi předchozí widget a ten, do kterého jsem ho s dobrého důvodu chtěl.
Neporadíte někdo, kde je chyba? Díky.

 
Odpovědět 24.6.2018 9:57
Avatar
Jan Novák
Člen
Avatar
Jan Novák:24.6.2018 11:18

Tak jsem si vzal brejle a na konci místo toho echa napsal return ;-) .... Přesto by mě zajímalo proč se to vypisovalo zrovna tam??

 
Nahoru Odpovědět 24.6.2018 11:18
Avatar
Pavel Mareš
Redaktor
Avatar
Pavel Mareš:24.6.2018 19:33

Důvod je jednoduchej. Ta funkce se volá (inicializuje) před tím, než se widget vykreslí (když se tahají data). Widgety jsou různé bloky, ne jeden program. Tzn. zavolá se jeden, pak druhý, ...

Editováno 24.6.2018 19:34
Nahoru Odpovědět 24.6.2018 19:33
Však ono půjde ...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.