PluginProbe
Assistant – Every Day Productivity Apps / 1.2.2
Assistant – Every Day Productivity Apps v1.2.2
1.5.5 trunk 0.1.0 0.2.0 0.2.1 0.2.2 0.3.0 0.3.1 0.4 0.4.1 0.4.2 0.5.0 0.5.1 0.6.0 0.7.0 0.7.0.2 0.7.0.3 0.7.0.4 0.7.0.5 0.7.0.6 0.7.0.7 0.7.0.8 0.7.0.9 0.7.1 1.0 All 71 releases
← All changes | backend/src/Data/Repository/LabelsRepository.php +50 -5 0.41.2.2 View file →
@@ -26,8 +26,49 @@
26 26 return parent::query( $args );
27 27 }
28 28
29 29 /**
30 + * @return array
31 + */
32 + public function count() {
33 + global $wpdb;
34 +
35 + $terms = $this->query(
36 + [
37 + 'hide_empty' => false,
38 + ]
39 + )->get_terms();
40 +
41 + if ( ! count( $terms ) ) {
42 + return [];
43 + }
44 +
45 + $counts = [];
46 + $subqueries = [];
47 +
48 + foreach ( $terms as $term ) {
49 + $subqueries[] = $wpdb->prepare(
50 + "(SELECT COUNT(*)
51 + FROM $wpdb->postmeta
52 + WHERE meta_key = 'fl_asst_notation_label_id'
53 + AND meta_value = %d) as label_%d",
54 + $term->term_id,
55 + $term->term_id
56 + );
57 + }
58 +
59 + $results = $wpdb->get_row( 'SELECT ' . implode( ',', $subqueries ) );
60 + $counts = [];
61 +
62 + foreach ( $results as $key => $count ) {
63 + $key = str_replace( 'label_', '', $key );
64 + $counts[ $key ] = $count;
65 + }
66 +
67 + return $counts;
68 + }
69 +
70 + /**
30 71 * @param string $object_type
31 72 * @param int $label_id
32 73 * @return array
33 74 */
@@ -33,22 +74,26 @@
33 74 */
34 75 function get_object_ids( $object_type, $label_id ) {
35 76 global $wpdb;
36 77
37 - $sql = "SELECT m1.meta_value
78 + $results = $wpdb->get_results(
79 + $wpdb->prepare(
80 + "SELECT m1.meta_value
38 81 FROM $wpdb->postmeta m1
39 82 INNER JOIN $wpdb->postmeta m2
40 83 ON m1.post_id = m2.post_id
41 84 AND m1.meta_key = 'fl_asst_notation_object_id'
42 85 AND m2.meta_key = 'fl_asst_notation_label_id'
43 - AND m2.meta_value = '%d'
86 + AND m2.meta_value = %d
44 87 INNER JOIN $wpdb->postmeta m3
45 88 ON m1.post_id = m3.post_id
46 89 AND m3.meta_key = 'fl_asst_notation_object_type'
47 - AND m3.meta_value = '%s'";
90 + AND m3.meta_value = %s",
91 + $label_id,
92 + $object_type
93 + )
94 + );
48 95
49 - $prepared = $wpdb->prepare( $sql, $label_id, $object_type );
50 - $results = $wpdb->get_results( $prepared );
51 96 $ids = [];
52 97
53 98 foreach ( $results as $result ) {
54 99 $ids[] = $result->meta_value;