' . $title . '
' .
/** This filter is documented in wp-admin/edit-tag-form.php */
'
' . apply_filters( 'editable_slug', $post->post_name, $post ) . '
' . $post->post_author . '
' . esc_html( $post->ping_status ) . '
' . esc_html( $post->post_status ) . '
' . mysql2date( 'd', $post->post_date, false ) . '
' . mysql2date( 'm', $post->post_date, false ) . '
' . mysql2date( 'Y', $post->post_date, false ) . '
' . mysql2date( 'H', $post->post_date, false ) . '
' . mysql2date( 'i', $post->post_date, false ) . '
' . mysql2date( 's', $post->post_date, false ) . '
' . esc_html( $post->post_password ) . '
';
if ( $post_type_object->hierarchical ) {
echo '
' . $post->post_parent . '
';
}
echo '
' . ( $post->page_template ? esc_html( $post->page_template ) : 'default' ) . '
';
if ( post_type_supports( $post->post_type, 'page-attributes' ) ) {
echo '';
}
$taxonomy_names = get_object_taxonomies( $post->post_type );
foreach ( $taxonomy_names as $taxonomy_name ) {
$taxonomy = get_taxonomy( $taxonomy_name );
if ( ! $taxonomy->show_in_quick_edit ) {
continue;
}
if ( $taxonomy->hierarchical ) {
$terms = get_object_term_cache( $post->ID, $taxonomy_name );
if ( false === $terms ) {
$terms = wp_get_object_terms( $post->ID, $taxonomy_name );
wp_cache_add( $post->ID, wp_list_pluck( $terms, 'term_id' ), $taxonomy_name . '_relationships' );
}
$term_ids = empty( $terms ) ? array() : wp_list_pluck( $terms, 'term_id' );
echo '
' . implode( ',', $term_ids ) . '
';
} else {
$terms_to_edit = get_terms_to_edit( $post->ID, $taxonomy_name );
if ( ! is_string( $terms_to_edit ) ) {
$terms_to_edit = '';
}
echo '
'
. esc_html( str_replace( ',', ', ', $terms_to_edit ) ) . '
';
}
}
if ( ! $post_type_object->hierarchical ) {
echo '
' . ( is_sticky( $post->ID ) ? 'sticky' : '' ) . '
';
}
if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
echo '
' . esc_html( get_post_format( $post->ID ) ) . '
';
}
/**
* Fires after outputting the fields for the inline editor for posts and pages.
*
* @since 4.9.8
*
* @param WP_Post $post The current post object.
* @param WP_Post_Type $post_type_object The current post's post type object.
*/
do_action( 'add_inline_data', $post, $post_type_object );
echo '
';
}
/**
* Outputs the in-line comment reply-to form in the Comments list table.
*
* @since 2.7.0
*
* @global WP_List_Table $wp_list_table
*
* @param int $position Optional. The value of the 'position' input field. Default 1.
* @param bool $checkbox Optional. The value of the 'checkbox' input field. Default false.
* @param string $mode Optional. If set to 'single', will use WP_Post_Comments_List_Table,
* otherwise WP_Comments_List_Table. Default 'single'.
* @param bool $table_row Optional. Whether to use a table instead of a div element. Default true.
*/
function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $table_row = true ) {
global $wp_list_table;
/**
* Filters the in-line comment reply-to form output in the Comments
* list table.
*
* Returning a non-empty value here will short-circuit display
* of the in-line comment-reply form in the Comments list table,
* echoing the returned value instead.
*
* @since 2.7.0
*
* @see wp_comment_reply()
*
* @param string $content The reply-to form content.
* @param array $args An array of default args.
*/
$content = apply_filters(
'wp_comment_reply',
'',
array(
'position' => $position,
'checkbox' => $checkbox,
'mode' => $mode,
)
);
if ( ! empty( $content ) ) {
echo $content;
return;
}
if ( ! $wp_list_table ) {
if ( 'single' === $mode ) {
$wp_list_table = _get_list_table( 'WP_Post_Comments_List_Table' );
} else {
$wp_list_table = _get_list_table( 'WP_Comments_List_Table' );
}
}
?>
';
/* translators: 1: Month, 2: Day, 3: Year, 4: Hour, 5: Minute. */
printf( __( '%1$s %2$s, %3$s at %4$s:%5$s' ), $month, $day, $year, $hour, $minute );
echo '
' . __( 'Before you can upload your import file, you will need to fix the following error:' ) . '
';
$upload_directory_error .= '';
if ( $plugin ) {
/* translators: %s: The name of the plugin that generated this meta box. */
printf( __( 'This meta box, from the %s plugin, is not compatible with the block editor.' ), "{$plugin['Name']}" );
} else {
_e( 'This meta box is not compatible with the block editor.' );
}
echo '
';
if ( empty( $plugins['classic-editor/classic-editor.php'] ) ) {
if ( current_user_can( 'install_plugins' ) ) {
$install_url = wp_nonce_url(
self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ),
'save_wporg_username_' . get_current_user_id()
);
echo '';
/* translators: %s: A link to install the Classic Editor plugin. */
printf( __( 'Please install the Classic Editor plugin to use this meta box.' ), esc_url( $install_url ) );
echo '
';
}
} elseif ( is_plugin_inactive( 'classic-editor/classic-editor.php' ) ) {
if ( current_user_can( 'activate_plugins' ) ) {
$activate_url = wp_nonce_url(
self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php' ),
'activate-plugin_classic-editor/classic-editor.php'
);
echo '';
/* translators: %s: A link to activate the Classic Editor plugin. */
printf( __( 'Please activate the Classic Editor plugin to use this meta box.' ), esc_url( $activate_url ) );
echo '
';
}
} elseif ( $data_object instanceof WP_Post ) {
$edit_url = add_query_arg(
array(
'classic-editor' => '',
'classic-editor__forget' => '',
),
get_edit_post_link( $data_object )
);
echo '';
/* translators: %s: A link to use the Classic Editor plugin. */
printf( __( 'Please open the classic editor to use this meta box.' ), esc_url( $edit_url ) );
echo '
';
}
}
/**
* Internal helper function to find the plugin from a meta box callback.
*
* @since 5.0.0
*
* @access private
*
* @param callable $callback The callback function to check.
* @return array|null The plugin that the callback belongs to, or null if it doesn't belong to a plugin.
*/
function _get_plugin_from_callback( $callback ) {
try {
if ( is_array( $callback ) ) {
$reflection = new ReflectionMethod( $callback[0], $callback[1] );
} elseif ( is_string( $callback ) && str_contains( $callback, '::' ) ) {
$reflection = new ReflectionMethod( $callback );
} else {
$reflection = new ReflectionFunction( $callback );
}
} catch ( ReflectionException $exception ) {
// We could not properly reflect on the callable, so we abort here.
return null;
}
// Don't show an error if it's an internal PHP function.
if ( ! $reflection->isInternal() ) {
// Only show errors if the meta box was registered by a plugin.
$filename = wp_normalize_path( $reflection->getFileName() );
$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
if ( str_starts_with( $filename, $plugin_dir ) ) {
$filename = str_replace( $plugin_dir, '', $filename );
$filename = preg_replace( '|^/([^/]*/).*$|', '\\1', $filename );
$plugins = get_plugins();
foreach ( $plugins as $name => $plugin ) {
if ( str_starts_with( $name, $filename ) ) {
return $plugin;
}
}
}
}
return null;
}
/**
* Meta-Box template function.
*
* @since 2.5.0
*
* @global array $wp_meta_boxes Global meta box state.
*
* @param string|WP_Screen $screen The screen identifier. If you have used add_menu_page() or
* add_submenu_page() to create a new screen (and hence screen_id)
* make sure your menu slug conforms to the limits of sanitize_key()
* otherwise the 'screen' menu may not correctly render on your page.
* @param string $context The screen context for which to display meta boxes.
* @param mixed $data_object Gets passed to the meta box callback function as the first parameter.
* Often this is the object that's the focus of the current screen,
* for example a `WP_Post` or `WP_Comment` object.
* @return int Number of meta_boxes.
*/
function do_meta_boxes( $screen, $context, $data_object ) {
global $wp_meta_boxes;
static $already_sorted = false;
if ( empty( $screen ) ) {
$screen = get_current_screen();
} elseif ( is_string( $screen ) ) {
$screen = convert_to_screen( $screen );
}
$page = $screen->id;
$hidden = get_hidden_meta_boxes( $screen );
printf( '