繁体   English   中英

使用 get_query_var() 过滤 wordpress 自定义帖子类型的问题

[英]Problem filtering wordpress custom post type using get_query_var()

我是论坛的新手,所以对于我可能犯的任何错误,我深表歉意。 我正在自定义一个自定义帖子类型存档页面,在创建它时,我想在侧边栏上插入一个标签列表,以便让用户过滤自定义帖子。

具体来说,我创建了一个“酒店”自定义帖子类型,并且在每个帖子中都使用了一些标签。 我没有创建自定义分类法,因为其他帖子类型也使用了一些标签。 因此,为了仅向用户显示“酒店”帖子类型使用的标签,我正在调用 wordpress 的get_tags()函数,传递所需标签的 ID 列表。 获得所有标签后,我开始了一个foreach循环,该循环创建了一个输入元素的无序列表。 每个输入元素都包含一些属性,以便检查它是否包含在 url 中。

现在的问题是,如果我检查侧边栏上的多个标签并单击应用过滤器按钮,带有查询变量的新 url 将显示每个包含至少一个选中标签的帖子。 如何修改整个内容以仅显示必须包含 url 查询中存在的每个标签的帖子?

希望我已经清楚了,我将在上面发布代码。 提前感谢您的帮助。

<?php $hotel_tags = get_tags('include=2,5,11,12,13,22,25,26,27,28,30,31,34,35,41');?>
            <form method="GET">
                <ul class="tag__line">
                    <?php foreach($hotel_tags as $tag):?>
                    <li>
                        <label>
                            <input type="checkbox" name="terms[]" value="<?php echo $tag->slug; ?>" <?php checked((isset($_GET['terms']) && in_array($tag->slug, $_GET['terms']))) ?>/>
                            <?php echo $tag->name; ?>
                        </label>
                    </li>
                    <?php endforeach;?>
                </ul>
                <button type="submit">Applica filtri</button>
            </form>

我找到了一个解决方案,它实际上很容易。

我只需要在我的 functions.php 文件中声明查询变量,以便让它们使用get_query_var()

之后,我可以轻松地抓住它们并插入 WP_Query $args

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM