用于填充自定义分类的三重下拉菜单

时间:2012-03-27 作者:Solomon Henry

我正在开发一种将3个自定义分类法填充到3个下拉列表中的逻辑,我有一个自定义的post类型经销商,在这下面我有3个分类法1。状态2。城市3。制造商

当我选择州时,我必须填充与州相关的城市,当我选择城市时,我必须填充与我选择的城市相关的第三个下拉列表中的制造商列表。。。这是我正在处理的示例链接

http://carandhalf.com/dealers

以下是显示“custom tax in”下拉列表的代码

<li id="categories">
    <h2><?php _e(\'Locate Dealer\'); ?></h2>
    <form action="<?php bloginfo(\'url\'); ?>" method="get">
        <div>
            <?php $state_args = array(\'taxonomy\' => \'state\', \'hide_empty\' => 0, \'depth\' => 2); ?>
            <?php wp_dropdown_categories($state_args); ?>
        </div></br>
        <div>
            <?php $city_args = array(\'taxonomy\' => \'city\', \'hide_empty\' => 0); ?>
            <?php wp_dropdown_categories($city_args); ?>
        </div></br>
        <div>
            <?php $man_args = array(\'taxonomy\' => \'manufacturer\', \'hide_empty\' => 0); ?> 
            <?php wp_dropdown_categories($man_args); ?>
        </div></br>
            <input type="submit" name="submit" value="view" />
        </div>
    </form>
</li>
谁能帮我过滤数据。。。。。。我不是WP的专业人士,请跟我说实话。

提前感谢

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

如果没有在分类法之间定义某种关系,则很难实现,也无法扩展,这意味着您必须:

捕捉状态的变化(首先)下拉列表,然后获取所有posts 用这个分类术语(first Query)second query) 避免重复并返回该列表,您必须重复该列表以更改城市(第二个)下拉列表。

现在的问题是第二个查询,它实际上是很多很多小查询,而且数量只会增加。这就是我的意思,不可伸缩。

更好的解决方案是使用一种具有层次结构的分类法,其中顶级术语是州,第二级术语是城市,第三级术语是制造商,当您以这种方式设置时,流程变成:

捕获状态的更改(首先)下拉列表,然后获取terms 将该分类术语作为父项(first Query) 然后返回该列表,就是这样,但这也有一个主要缺点,那就是条款的管理成了$%^的一个难题,因为在不同的城市会有相同的制造商。

另一种解决方案是使用3种不同的分类法,但也可以创建一个自定义数据库表来保存分类法术语之间的关系。

我能想到的最后一个解决方案是使用3种不同的分类法,并创建一个自定义SQL查询来获取所需的术语(这需要像忍者一样的SQL技能,但遗憾的是,我并不拥有这些技能:)

一旦确定了要走哪条路,就只需在更改事件上创建ajax调用并用结果填充下一个下拉列表。

结束

相关推荐