Как я могу подсчитать экземпляры пользовательского термина таксономии в области пользовательского типа записи?

#wordpress #filter #count #custom-post-type #custom-taxonomy

#wordpress #Фильтр #подсчитать #пользовательский тип записи #пользовательская таксономия

Вопрос:

У меня есть пользовательская таксономия под названием «задачи», разделяемая между двумя пользовательскими типами записей «роли» и «продукты».

Ожидаемые результаты: Мне нужно подсчитать, сколько раз данный термин «задача» используется для каждого типа записи «роль», минус количество, общее для типа записи «продукт», использующего тот же термин «задача».

Фактические результаты: нет для отчета, поскольку я не знаю, как с этим справиться

Сообщения об ошибках: Нет

Что я пробовал: Google продолжает возвращаться к тому, как подсчитывать тип записи, а не термины:(

Приведенный ниже код — это мой план B. Здесь я просто выполняю несколько микроциклов для каждого типа записи (только один показан ниже для краткости), получая задачи и превращая их в ассоциативный массив с помощью array_count_values

     $taskList = [];
        
    $queryRoles = new WP_Query( array(
        "post_type" => "roles"
    ));

    while ( $queryRoles->have_posts() ) : $queryRoles->the_post();
        $tasks = get_the_terms( get_the_ID(), "tasks" );
        foreach ( $tasks as $task ) :
            $taskList[] = $task->name;
        endforeach;
    endwhile;

    $overlappingRoleTasks = $taskList;

    print_r(array_count_values($taskList));
  

Ответ №1:

вы могли бы выполнить цикл, ограниченный только сообщениями с назначенными задачами, и цикл, ограниченный только продуктами с назначенными задачами. Затем, используя sizeof(); который возвращает количество элементов в массиве, подсчитайте каждое количество записей и продуктов, а затем выполните некоторые базовые вычисления php.

Подробнее о sizeof(); @ https://www.w3schools.com/php/func_array_sizeof.asp