WordPress Version: 6.4
//
// Page-related Meta Boxes.
//
/**
* Displays page attributes form fields.
*
* @since 2.7.0
*
* @param WP_Post $post Current post object.
*/
function page_attributes_meta_box($post)
{
if (is_post_type_hierarchical($post->post_type)) {
$dropdown_args = array('post_type' => $post->post_type, 'exclude_tree' => $post->ID, 'selected' => $post->post_parent, 'name' => 'parent_id', 'show_option_none' => __('(no parent)'), 'sort_column' => 'menu_order, post_title', 'echo' => 0);
/**
* Filters the arguments used to generate a Pages drop-down element.
*
* @since 3.3.0
*
* @see wp_dropdown_pages()
*
* @param array $dropdown_args Array of arguments used to generate the pages drop-down.
* @param WP_Post $post The current post.
*/
$dropdown_args = apply_filters('page_attributes_dropdown_pages_args', $dropdown_args, $post);
$pages = wp_dropdown_pages($dropdown_args);
if (!empty($pages)) {
?>
<p class="post-attributes-label-wrapper parent-id-label-wrapper"><label class="post-attributes-label" for="parent_id"><?php
_e('Parent');
?></label></p>
<?php
echo $pages;
?>
<?php
}
// End empty pages check.
}
// End hierarchical check.
if (count(get_page_templates($post)) > 0 && (int) get_option('page_for_posts') !== $post->ID) {
$template = (!empty($post->page_template)) ? $post->page_template : false;
?>
<p class="post-attributes-label-wrapper page-template-label-wrapper"><label class="post-attributes-label" for="page_template"><?php
_e('Template');
?></label>
<?php
/**
* Fires immediately after the label inside the 'Template' section
* of the 'Page Attributes' meta box.
*
* @since 4.4.0
*
* @param string|false $template The template used for the current post.
* @param WP_Post $post The current post.
*/
do_action('page_attributes_meta_box_template', $template, $post);
?>
</p>
<select name="page_template" id="page_template">
<?php
/**
* Filters the title of the default page template displayed in the drop-down.
*
* @since 4.1.0
*
* @param string $label The display value for the default page template title.
* @param string $context Where the option label is displayed. Possible values
* include 'meta-box' or 'quick-edit'.
*/
$default_title = apply_filters('default_page_template_title', __('Default template'), 'meta-box');
?>
<option value="default"><?php
echo esc_html($default_title);
?></option>
<?php
page_template_dropdown($template, $post->post_type);
?>
</select>
<?php
}
?>
<?php
if (post_type_supports($post->post_type, 'page-attributes')) {
?>
<p class="post-attributes-label-wrapper menu-order-label-wrapper"><label class="post-attributes-label" for="menu_order"><?php
_e('Order');
?></label></p>
<input name="menu_order" type="text" size="4" id="menu_order" value="<?php
echo esc_attr($post->menu_order);
?>" />
<?php
/**
* Fires before the help hint text in the 'Page Attributes' meta box.
*
* @since 4.9.0
*
* @param WP_Post $post The current post.
*/
do_action('page_attributes_misc_attributes', $post);
?>
<?php
if ('page' === $post->post_type && get_current_screen()->get_help_tabs()) {
?>
<p class="post-attributes-help-text"><?php
_e('Need help? Use the Help tab above the screen title.');
?></p>
<?php
}
}
}