Wordpress过滤多个下拉分类法以通过ajax显示自定义字段

7 php ajax wordpress taxonomy custom-post-type

我目前有一个名为的自定义帖子类型newcpt.这有2个分类法,regioncity.在区,我有regionaregionb,和在城市,我有cityacityb.

我目前正在使用wp_dropdown_categories来获取下拉列表regiona.是否有快速或简单的解决方案来显示第二个下拉列表,只有当它也具有regiona分类法时才会显示.

所以举个例子.我有一个职位testpost是在regiona和也cityaregiona从下拉列表中选择我想第二个下拉填充这一区域的城市,所以在这种情况下,citya

一旦选择了城市,它将从同一页面上的匹配分类法获取此cpt中的所有帖子.任何提示或有用的链接都非常感谢!!

lip*_*liv 1

我认为最好的解决方案是使用 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);
    };
  }
]);
Run Code Online (Sandbox Code Playgroud)

和 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>
Run Code Online (Sandbox Code Playgroud)

活生生的例子:https ://plnkr.co/edit/gyzCxMpn9luAcGsLZHYD

(你必须完成它)