2013-06-02 21 views
0

这是我基于David DeSandro的同位素创建组合筛选器的第一步。我基于我的网站上已有的同位素过滤器实现创建了此功能。它所做的是输出WordPress类别并将它们实现为同位素过滤器。截至目前,一切运作良好。我想要做的是在提取数据后将每个ifif语句设置到它自己的列中。例如:如何在PHP for Wordpress中的if if语句之间打包div

**<div class="column"><--I would like to add a div like this here** 

    elseif (cat_is_ancestor_of(156, $filtered)) { 
     $option .= '<li class="child-style" data-link="'.$filtered->slug.'">'; 
     $option .= '<a href="" title="'.$filtered->slug.'">'; 
     $option .= '&nbsp;&nbsp;&nbsp;'; 
     $option .= $filtered->name; 
     $option .= '</a></li>'; 
    } 

**</div><--and here** 

下面是我写的功能的开始,我已经写了这个功能。到目前为止,它可以工作,但它在一个整齐的单列列表中输出数据(在这种情况下类别为&子类别)。我最终想要对这个类别列表进行样式设置,以便每个父类都在它自己的列中。

这是我遇到困难,因为我似乎无法找到一种方法来分隔if,elseif语句与div的没有得到此错误: Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in /Users/djmorigeau/localhost/wordpress/wp-content/themes/skittles-child/functions.php on line 89。这是我收到的错误,当我包装每个if,elseif语句与<div class="col_3">code</div>有关如何将结果分组为列的任何想法?

function color_filter($categories, $type = 'blog') { 

    $catArgs = array(
    'type'      => 'post', 
    'child_of'     => 0, 
    'parent'     => '', 
    'orderby'     => 'name', 
    'order'     => 'ASC', 
    'hide_empty'    => 1, 
    'hierarchical'    => 1, 
    'taxonomy'     => 'category', 
    'pad_counts'    => false); 


    $catList = get_categories($catArgs); 

    if(isset($categories[0])) { 
     $categories = unserialize($categories[0]); 

     if (function_exists('color_filter')) { 

     $option = '<div class="megamenu_container megamenu_dark_bar megamenu_dark"><ul class="megamenu">'; 
     $option .= '<li><a class="megamenu_drop" href="#">Filter<em class="dropdown-arrow"></em></a>'; 
     $option .= '<div class="dropdown_fullwidth"><div class="mpcth-'.$type.'-categories mpcth-filterable-categories">'; 
     $option .= '<ul>'; 
     $option .= '<li class="active" data-link="post"><a href="#">'.__('All', 'mpcth').'</a></li>'; 

      foreach ($catList as $filtered) { 

       if((isset($categories[$filtered->slug]) && $categories[$filtered->slug] == 'on') || !isset($categories[$filtered->slug])) { 

        if (cat_is_ancestor_of(37, $filtered)) { 
        $option .= '<li class="child-style" data-link="'.$filtered->slug.'">'; 
        $option .= '<a href="" title="'.$filtered->slug.'">'; 
        $option .= '&nbsp;&nbsp;&nbsp;'; 
        $option .= $filtered->name; 
        $option .= '</a></li>'; 
        } 

        elseif (cat_is_ancestor_of(156, $filtered)) { 
        $option .= '<li class="child-style" data-link="'.$filtered->slug.'">'; 
        $option .= '<a href="" title="'.$filtered->slug.'">'; 
        $option .= '&nbsp;&nbsp;&nbsp;'; 
        $option .= $filtered->name; 
        $option .= '</a></li>'; 
        } 

        elseif (cat_is_ancestor_of(176, $filtered)) { 
        $option .= '<li class="child-style" data-link="'.$filtered->slug.'">'; 
        $option .= '<a href="" title="'.$filtered->slug.'">'; 
        $option .= '&nbsp;&nbsp;&nbsp;'; 
        $option .= $filtered->name; 
        $option .= '</a></li>'; 
        } 

        elseif (cat_is_ancestor_of(188, $filtered)) { 
        $option .= '<li class="child-style" data-link="'.$filtered->slug.'">'; 
        $option .= '<a href="" title="'.$filtered->slug.'">'; 
        $option .= '&nbsp;&nbsp;&nbsp;'; 
        $option .= $filtered->name; 
        $option .= '</a></li>'; 
        } 

        else { 
        $option .= '<li data-link="'.$filtered->slug.'">'; 
        $option .= '<a href="" title="'.$filtered->slug.'">'.$filtered->name.'</a></li>'; 
        } 
       } 
      } 
       $option .= '</ul></div></div></li></ul></div>'; 
       echo $option; 
     } 
    } 
} 

回答

0

我想你的意思是这样的:

elseif(...) { 

    $option .= '<div class="column">'; 

    // your code 

    $option .= '</div>'; 

} 

,或者你的意思是这样的:

$done = false; 

$option .= '<div class="column">'; 
if (cat_is_ancestor_of(37, $filtered)) { 
    // your code 
    $done = true; 
} 
$option .= '</div>'; 

$option .= '<div class="column">'; 
if (!$done && cat_is_ancestor_of(156, $filtered)) { 
    // your code 
    $done = true; 
} 
$option .= '</div>'; 

$option .= '<div class="column">'; 
if (!$done && cat_is_ancestor_of(176, $filtered)) { 
    // your code 
    $done = true; 
} 
$option .= '</div>'; 

$option .= '<div class="column">'; 
if (!$done && cat_is_ancestor_of(188, $filtered)) { 
    // your code 
    $done = true; 
} 
$option .= '</div>'; 

$option .= '<div class="column">'; 
if (!$done) { 
    // your code 
} 
$option .= '</div>';