Skip foreach loop

时间:2013-08-09 作者:user34277

这里有一个小的编码问题。代码:

if ($categories) { 

    foreach ($categories as $tag) { 

        $tag_link = get_category_link($tag->term_id); 

        //new line 
        if (isset($instance[\'new-line\'])) { 
            $html .= "<div>"; 
        } 

        $html .= "<span class="tagsy-box" style="$box_style">"; 
        $html .= "<a href="{$tag_link}" title="{$tag->name} Tag" class="{$tag->slug}"><span class="tagsy-name-$style $theme_name" style="$name_style">"; 
        $html .= "{$tag->name}</span><span class="tagsy-count-$style $theme_count" style="$count_style">{$tag->count}</span></a></span>"; 

        //new line 
        if (isset($instance[\'new-line\'])) { 
            $html .= "</div>"; } } 
        } 
        else { 
            $html .= "No Categories Available"; 
        }

    }

}
问题:我想从显示中排除某些类别。显然,这样做的方法是跳过我想要排除的那些类别的foreach循环。不幸的是,我不知道怎么做。非常感谢您的帮助。

2 个回复
SO网友:Morgan Estes

在您使用的第195行中get_categories, 可以通过参数数组或查询字符串对其进行筛选,以排除特定的类别号。自从$options 已设置,您可以在调用之前添加get_categories:

if ($show_assigned_categories == \'true\' && is_single()) {
        $categories = get_the_category();
} 
else {
    $options[\'exclude\'] = \'1,2,3\'; // your comma-separated list goes here
    $categories = get_categories($options);
}

SO网友:Rahil Wazir

要排除类别,可以尝试以下代码。

$categories = get_categories();    
$category_to_exclude = array(1,2,3);

if ($categories) {
    foreach ($categories as $tag) {
        if( !in_array($tag->term_id, $category_to_exclude) ) {
            $tag_link = get_category_link($tag->term_id);
            echo $tag_link;
        }
    }
}
in\\u array php函数将检查当前的foreach循环$tag->term_id 存在于$category\\u to\\u exclude变量中。如果不存在,循环将继续。如果存在,语句将为false并跳过类别id。

结束

相关推荐

如何为我的自定义帖子类型创建我自己的edit.php管理页面代码或模板

大多数插件试图隐藏编辑的组件。在wp admin上显示php屏幕,并将其替换为元框,以创建自定义帖子类型所需的布局和字段。但这意味着该编辑中仍然存在不必要的代码。php页面未使用,增加了页面负载。此外,并非所有事情都可以使用元框完成。是否有一种方法可以创建自己的编辑。我的自定义帖子类型从头开始的php页面?可能会隐藏自定义帖子类型UI,创建一个新的管理页面,并使用它来插入自定义帖子或更新它?在管理页面上可以这样做吗?