PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.3.2
Admin Columns v4.3.2
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 / Column / Menu.php
codepress-admin-columns / classes / Column Last commit date
Comment 5 years ago Media 5 years ago Post 5 years ago User 5 years ago Actions.php 5 years ago AjaxValue.php 5 years ago CustomField.php 5 years ago Menu.php 5 years ago Meta.php 5 years ago Placeholder.php 5 years ago Relation.php 5 years ago Taxonomy.php 5 years ago WooCommercePlaceholder.php 5 years ago
Menu.php
93 lines
1 <?php
2
3 namespace AC\Column;
4
5 use AC\Column;
6 use AC\Settings;
7
8 /**
9 * Column displaying the menus the item is used in. Supported by all object types that
10 * can be referenced in menus (i.e. posts).
11 * @since 2.2.5
12 */
13 abstract class Menu extends Column {
14
15 public function __construct() {
16 $this->set_type( 'column-used_by_menu' );
17 $this->set_label( __( 'Menu', 'codepress-admin-columns' ) );
18 }
19
20 /**
21 * @param $object_id
22 *
23 * @return array
24 * @since 2.2.5
25 */
26 public function get_raw_value( $object_id ) {
27 return $this->get_menus( $object_id, [ 'fields' => 'ids', 'orderby' => 'name' ] );
28 }
29
30 /**
31 * @return string
32 */
33 public abstract function get_object_type();
34
35 /**
36 * @return string
37 */
38 public abstract function get_item_type();
39
40 /**
41 * @param int $object_id
42 *
43 * @return array
44 */
45 public function get_menu_item_ids( $object_id ) {
46 $menu_item_ids = get_posts( [
47 'post_type' => 'nav_menu_item',
48 'posts_per_page' => -1,
49 'post_status' => 'publish',
50 'fields' => 'ids',
51 'meta_query' => [
52 [
53 'key' => '_menu_item_object_id',
54 'value' => $object_id,
55 ],
56 [
57 'key' => '_menu_item_object',
58 'value' => $this->get_object_type(),
59 ],
60 ],
61 ] );
62
63 return $menu_item_ids;
64 }
65
66 /**
67 * @param int $object_id
68 * @param array $args
69 *
70 * @return array
71 */
72 public function get_menus( $object_id, $args = [] ) {
73
74 $menu_item_ids = $this->get_menu_item_ids( $object_id );
75
76 if ( ! $menu_item_ids ) {
77 return [];
78 }
79
80 $menu_ids = wp_get_object_terms( $menu_item_ids, 'nav_menu', $args );
81
82 if ( ! $menu_ids || is_wp_error( $menu_ids ) ) {
83 return [];
84 }
85
86 return $menu_ids;
87 }
88
89 public function register_settings() {
90 $this->add_setting( new Settings\Column\LinkToMenu( $this ) );
91 }
92
93 }