删除某些术语,使其在前端显示为链接

时间:2013-07-08 作者:dannyw24

我已经对此进行了一些思考,但我真的不知道我在去除我的推荐类中的某些术语时会采取什么方向,这些术语被称为“home”、“homeone”和“hometwo”。我只想停止在相关页面上以链接格式显示这些内容。

下面是代码,该过程包含了Certimonal\\u类别中的所有术语,我想我需要添加一个过滤器,以阻止这3个命名术语以链接的形式出现,但实际上可以提供一些如何做到这一点的建议。

<div id="main" class="floatleft">

    <div class="case-study"> 
        <h1 class="p-title">Testimonials</h1>
        <div class="breadcrumb"> 
            <ul class="filter group">
                <li class="all current"><a href="#">All<span></span></a></li>
                <?php
                $terms = get_terms("testimonial_category");
                $count = count($terms);
                if ($count > 0) {
                    foreach ($terms as $term) {
                        ?><li class="<?php echo $term->slug; ?>"><a href="#"><?php echo $term->name; ?><span></span></a></li><?php
                    }
                }
                ?>
            </ul>
        </div>
        <div class="clear"></div>
非常感谢您的帮助。

2 个回复
最合适的回答,由SO网友:Sunyatasattva 整理而成

功能get_terms 有一个方便的$args 参数,允许您自定义查询以满足您的需要;在您的情况下,它将是简单的:

$args = array(
    \'exclude\'       => array(1,2,3)
);

$terms = get_terms("testimonial_category", $args);
要排除的数组必须包含要省略的类别的类别ID。

SO网友:David Kryzaniak

这有点像黑客。。。(IMO,这样的硬编码变量不是最佳实践),但这是一个很好的示例,可以让您的车轮转动。。。

<?php
//...
foreach ($terms as $term):?>

    <?php /*If the term name is anything but not \'home\' or \'homeone\' then echo the list item */ ?>
    <?php if($term->name != \'home\' || $term->name != \'homeone\' ):?>

        <li class="<?php echo $term->slug; ?>">
            <a href="#"><?php echo $term->name; ?><span></span></a>
        </li>

    <?php endif; ?>
<?php endforeach; ?>

结束