2011-04-04 87 views
0

我试图创建一个小部件,显示一个列表取决于页面是否有孩子。这里是我的代码看起来像迄今:成功显示WordPress的条件声明

<?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和其他元素,因此只需在wp_list_pages()中插入额外的代码作为wrap参数的一部分是不切实际的。

+0

你能否澄清你的第二个到最后一段? – Wipqozn 2011-04-04 11:43:38

+0

“但是元素不是”女巫元素?你可以粘贴一个print_r($ children)和HTML输出,你说它不工作.. – 2011-04-05 02:34:33

回答

1

wp_list_pages()将始终输出页面列表。即使你尝试将它分配给一个变量。这相当于$children = echo 'string';,这不起作用。

你想要做的就是定义什么:

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

然后检查它有条件

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