PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Helper / Menu.php
codepress-admin-columns / classes / Helper Last commit date
Image 1 day ago Select 1 day ago Arrays.php 1 day ago AvailableTranslations.php 1 day ago Creatable.php 1 day ago Dashicon.php 1 day ago Date.php 1 day ago Html.php 1 day ago Icon.php 1 day ago Image.php 1 day ago LocalFile.php 1 day ago Mbstring.php 1 day ago MediaIdResolver.php 1 day ago Menu.php 1 day ago Network.php 1 day ago Post.php 1 day ago Strings.php 1 day ago Taxonomy.php 1 day ago User.php 1 day ago UserRoles.php 1 day ago WpDateFormat.php 1 day ago
Menu.php
81 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Helper;
6
7 use WP_Term;
8
9 class Menu extends Creatable
10 {
11 public function get_label(int $menu_item_id): string
12 {
13 global $wpdb;
14
15 return (string)$wpdb->get_var(
16 $wpdb->prepare(
17 "
18 SELECT t.name
19 FROM $wpdb->terms AS t
20 INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id
21 INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
22 INNER JOIN $wpdb->posts AS menu ON menu.ID = tr.object_id
23 AND menu.post_type = 'nav_menu_item'
24 WHERE menu.ID = %d
25 ",
26 $menu_item_id
27 )
28 );
29 }
30
31 /**
32 * The `nav_menu_item` post IDs that reference the given object.
33 *
34 * @return int[]
35 */
36 public function get_item_ids(int $object_id, string $object_type): array
37 {
38 return get_posts([
39 'post_type' => 'nav_menu_item',
40 'posts_per_page' => -1,
41 'post_status' => 'publish',
42 'fields' => 'ids',
43 'meta_query' => [
44 [
45 'key' => '_menu_item_object_id',
46 'value' => $object_id,
47 ],
48 [
49 'key' => '_menu_item_object',
50 'value' => $object_type,
51 ],
52 ],
53 ]);
54 }
55
56 /**
57 * The `nav_menu` terms the given object is assigned to.
58 *
59 * @return array<int|string|WP_Term> Terms, term IDs when `$args['fields']` is `ids`, or term names/slugs for other `fields` values.
60 * @see WP_Term_Query::__construct() for supported arguments.
61 *
62 */
63 public function get_terms(int $object_id, string $object_type, array $args = []): array
64 {
65 $object_ids = $this->get_item_ids($object_id, $object_type);
66
67 if (! $object_ids) {
68 return [];
69 }
70
71 $terms = wp_get_object_terms($object_ids, 'nav_menu', $args);
72
73 if (! $terms || is_string($terms) || is_wp_error($terms)) {
74 return [];
75 }
76
77 return $terms;
78 }
79
80 }
81