0

这是我第一次尝试创建基于 David DeSandro 的同位素的组合过滤器。我基于我网站上已存在的同位素过滤器实现创建了此功能。它所做的是输出 WordPress 类别并将它们实现为同位素过滤器。截至目前,一切运作良好。我要做的是在提取数据后将每个 if elseif 语句设置为自己的列。例如:

**<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<div class="col_3">code</div>这是我将每个 if、elseif 语句与关于如何将结果分组到列中的任何想法一起包装时收到的错误?

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; 
        }
    }
}
4

1 回答 1

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>';
于 2013-06-02T19:18:47.590 回答