我目前有一个名为 newcpt
的自定义帖子类型。这有 2 个分类法,region
和 city
。
在区域中,我有 regiona
和 regionb
,在城市中,我有 citya
和 cityb
。
我目前正在使用 wp_dropdown_categories 来获取 regiona
的下拉菜单。是否有快速或简单的解决方案来显示第二个下拉列表,只有当它也有 regiona
作为分类法时才会显示。
举个例子。我有一个 testpost
的帖子,它在 regiona
中,当从 drop- 中选择 regiona
时,也在 citya
中down 我希望第二个下拉菜单用这个区域填充城市,所以在这种情况下 citya
一旦还选择了一个城市,它将在同一页面上抓取来自该 cpt 的所有帖子以及匹配的分类法。非常感谢任何提示或有用的链接!!
最佳答案
我认为最好的解决方案是使用 PHP 生成数据集并使用例如 AngularJS 在客户端网站上显示。
JavaScript
angular
.module('app', [])
.controller('controller', [
'$scope',
'$attrs',
function ($scope, $attrs) {
$scope.data=JSON.parse($attrs.selects);
$scope.region = {};
$scope.city = {};
$scope.loadCitys = function () {
$scope.region = JSON.parse($scope.region);
};
$scope.loadPosts = function () {
$scope.city = JSON.parse($scope.city);
};
}
]);
和 HTML
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://code.angularjs.org/1.5.8/angular.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body ng-controller="controller" data-selects='[{"name":"Region 1","citys":[{"name":"City 1","posts":[{"title":"Post 1","id":1},{"title":"Post 2","id":2}]}]},{"name":"Region 2","citys":[{"name":"City 2","posts":[{"title":"Post 3","id":3},{"title":"Post 4","id":4}]},{"name":"City 3","posts":[{"title":"Post 5","id":5},{"title":"Post 6","id":6}]}]}]'>
<div>
Region: {{region.name}} <br>
City: {{city.name}}
</div>
<select ng-model="region" ng-change="loadCitys()">
<option ng-repeat="tregion in data" value="{{tregion}}">{{tregion.name}}</option>
</select>
<select ng-model="city" ng-change="loadPosts()">
<option ng-repeat="tcity in region.citys" value="{{tcity}}">{{tcity.name}}</option>
</select>
<select ng-model="post">
<option ng-repeat="tpost in city.posts" value="{{tpost}}">{{tpost.title}}</option>
</select>
<script src="script.js"></script>
</body>
</html>
实例:https://plnkr.co/edit/gyzCxMpn9luAcGsLZHYD
(你必须完成它)
关于php - Wordpress 过滤多个下拉分类法以通过 ajax 显示自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959919/