PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 3.0.8
Nested Pages v3.0.8
3.3.1 3.2.15 3.2.14 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.3.0 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.2 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.3.1 1.6.3.2 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.6 1.6.7 1.6.8 1.7.0 1.7.1 2.0.1 2.0.2 2.0.3 2.0.4 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.21 3.1.22 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
wp-nested-pages / app / Entities / Post / PrivatePostParent.php
wp-nested-pages / app / Entities / Post Last commit date
PostCloner.php 8 years ago PostDataFactory.php 8 years ago PostFactory.php 8 years ago PostRepository.php 8 years ago PostTrashActions.php 8 years ago PostUpdateRepository.php 7 years ago PrivatePostParent.php 8 years ago
PrivatePostParent.php
68 lines
1 <?php
2 namespace NestedPages\Entities\Post;
3
4 /**
5 * Enables Private Posts/Pages in the Post Edit Dropdown
6 * Fixes bug in WP Core where child posts of a private/draft post become un-nested when editing
7 * @link https://core.trac.wordpress.org/ticket/8592#comment:129
8 */
9 class PrivatePostParent
10 {
11 public function __construct()
12 {
13 add_filter('wp_dropdown_pages', [$this, 'metabox'], 10, 3);
14 }
15
16 public function metabox($output, $arguments, $pages)
17 {
18 global $post;
19 if ( !$post ) return $output;
20 if ( !isset($arguments['post_type']) ) return $output;
21 if ( !isset($arguments['name']) ) return $output;
22 if ( $arguments['post_type'] !== $post->post_type ) return $output;
23 if ( $arguments['name'] !== 'parent_id' ) return $output;
24
25 $args = [
26 'post_type' => $post->post_type,
27 'exclude_tree' => $post->ID,
28 'selected' => $post->post_parent,
29 'name' => 'parent_id',
30 'show_option_none' => __('(no parent)'),
31 'sort_column' => 'menu_order, post_title',
32 'echo' => 0,
33 'post_status' => ['publish', 'private', 'draft'],
34 ];
35
36 $defaults = [
37 'depth' => 0,
38 'child_of' => 0,
39 'selected' => 0,
40 'echo' => 1,
41 'name' => 'page_id',
42 'id' => '',
43 'show_option_none' => '',
44 'show_option_no_change' => '',
45 'option_none_value' => '',
46 ];
47
48 $r = wp_parse_args($args, $defaults);
49 extract($r, EXTR_SKIP);
50
51 $pages = get_pages($r);
52 $name = esc_attr($name);
53
54 // Back-compat with old system where both id and name were based on $name argument
55 if (empty($id)) $id = $name;
56
57 if (empty($pages)) return;
58
59 $output = "<select name=\"$name\" id=\"$id\">\n";
60
61 if ($show_option_no_change) $output .= "\t<option value=\"-1\">$show_option_no_change</option>";
62 if ($show_option_none) $output .= "\t<option value=\"" . esc_attr($option_none_value) . "\">$show_option_none</option>\n";
63 $output .= walk_page_dropdown_tree($pages, $depth, $r);
64 $output .= "</select>\n";
65
66 return $output;
67 }
68 }