Wordpress Условное Заявление - PullRequest
0 голосов
/ 04 апреля 2011

Я пытаюсь создать виджет, который отображает список в зависимости от того, есть ли у страницы дочерние элементы. Вот как выглядит мой код:

<?php    
function widget_myHelloWorld() {
    ?>
    <?php if ( is_page() ) { ?>
    <?php
    global $id;
    $children = wp_list_pages("title_li=&child_of=$id&show_date=modified&date_format=$date_format");
    if ($children) {?>
        <ul>
    <?php echo $children; ?>
        </ul>
    <?php } } ?>
    <?php
    }

    function myHelloWorld_init()
    {
      register_sidebar_widget(__('Sidebar Sub Navigation'), 'widget_myHelloWorld');
    }
    add_action("plugins_loaded", "myHelloWorld_init");
    ?>

Элементы <li>, содержащие ссылки на подстраницы, успешно отображаются, а элементы - нет. Есть идеи, что здесь происходит?

* В конце концов, мне нужно добавить некоторые элементы div и другие элементы, поэтому просто вставить дополнительный код как часть параметра wrap в wp_list_pages() нецелесообразно.

1 Ответ

1 голос
/ 05 апреля 2011

wp_list_pages () всегда выводит список страниц. Даже если вы попытаетесь присвоить его переменной. Это эквивалент $children = echo 'string';, который не сработает.

что вы хотите сделать, это определить:

$children = get_pages('child_of='.$post->ID);

Тогда проверить это условно

if (count($children) != 0 ) {
    //this is where the magic happens
}
...