2019-03-12 09:27:46 +00:00
< ? php
// -- Post related Meta Boxes
/**
* Displays post submit form fields .
*
* @ since 2.7 . 0
*
* @ global string $action
*
* @ param WP_Post $post Current post object .
* @ param array $args {
* Array of arguments for building the post submit meta box .
*
* @ type string $id Meta box 'id' attribute .
* @ type string $title Meta box title .
* @ type callable $callback Meta box display callback .
* @ type array $args Extra meta box arguments .
* }
*/
function post_submit_meta_box ( $post , $args = array () ) {
global $action ;
2019-04-16 19:56:22 +00:00
$post_type = $post -> post_type ;
$post_type_object = get_post_type_object ( $post_type );
$can_publish = current_user_can ( $post_type_object -> cap -> publish_posts );
?>
2019-03-12 09:27:46 +00:00
< div class = " submitbox " id = " submitpost " >
< div id = " minor-publishing " >
2019-04-16 19:56:22 +00:00
< ? php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
2019-03-12 09:27:46 +00:00
< div style = " display:none; " >
2019-04-16 19:56:22 +00:00
< ? php submit_button ( __ ( 'Save' ), '' , 'save' ); ?>
2019-03-12 09:27:46 +00:00
</ div >
< div id = " minor-publishing-actions " >
< div id = " save-action " >
2019-04-16 19:56:22 +00:00
< ? php
if ( 'publish' != $post -> post_status && 'future' != $post -> post_status && 'pending' != $post -> post_status ) {
$private_style = '' ;
if ( 'private' == $post -> post_status ) {
$private_style = 'style="display:none"' ;
}
?>
< input < ? php echo $private_style ; ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e( 'Save Draft' ); ?>" class="button" />
2019-03-12 09:27:46 +00:00
< span class = " spinner " ></ span >
< ? php } elseif ( 'pending' == $post -> post_status && $can_publish ) { ?>
2019-04-16 19:56:22 +00:00
< input type = " submit " name = " save " id = " save-post " value = " <?php esc_attr_e( 'Save as Pending' ); ?> " class = " button " />
2019-03-12 09:27:46 +00:00
< span class = " spinner " ></ span >
< ? php } ?>
</ div >
2019-04-16 19:56:22 +00:00
< ? php if ( is_post_type_viewable ( $post_type_object ) ) : ?>
2019-03-12 09:27:46 +00:00
< div id = " preview-action " >
2019-04-16 19:56:22 +00:00
< ? php
$preview_link = esc_url ( get_preview_post_link ( $post ) );
if ( 'publish' == $post -> post_status ) {
$preview_button_text = __ ( 'Preview Changes' );
} else {
$preview_button_text = __ ( 'Preview' );
}
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
$preview_button = sprintf (
'%1$s<span class="screen-reader-text"> %2$s</span>' ,
$preview_button_text ,
/* translators: accessibility text */
__ ( '(opens in a new tab)' )
);
?>
2019-03-12 09:27:46 +00:00
< a class = " preview button " href = " <?php echo $preview_link ; ?> " target = " wp-preview-<?php echo (int) $post->ID ; ?> " id = " post-preview " >< ? php echo $preview_button ; ?> </a>
< input type = " hidden " name = " wp-preview " id = " wp-preview " value = " " />
</ div >
< ? php endif ; // public post type ?>
2019-04-16 19:56:22 +00:00
< ? php
/**
* Fires before the post time / date setting in the Publish meta box .
*
* @ since 4.4 . 0
*
* @ param WP_Post $post WP_Post object for the current post .
*/
do_action ( 'post_submitbox_minor_actions' , $post );
?>
2019-03-12 09:27:46 +00:00
< div class = " clear " ></ div >
</ div ><!-- #minor-publishing-actions -->
< div id = " misc-publishing-actions " >
< div class = " misc-pub-section misc-pub-post-status " >
2019-04-16 19:56:22 +00:00
< ? php _e ( 'Status:' ); ?> <span id="post-status-display">
< ? php
switch ( $post -> post_status ) {
case 'private' :
_e ( 'Privately Published' );
break ;
case 'publish' :
_e ( 'Published' );
break ;
case 'future' :
_e ( 'Scheduled' );
break ;
case 'pending' :
_e ( 'Pending Review' );
break ;
case 'draft' :
case 'auto-draft' :
_e ( 'Draft' );
break ;
}
?>
2019-03-12 09:27:46 +00:00
</ span >
2019-04-16 19:56:22 +00:00
< ? php
if ( 'publish' == $post -> post_status || 'private' == $post -> post_status || $can_publish ) {
$private_style = '' ;
if ( 'private' == $post -> post_status ) {
$private_style = 'style="display:none"' ;
}
?>
< a href = " #post_status " < ? php echo $private_style ; ?> class="edit-post-status hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit status' ); ?></span></a>
2019-03-12 09:27:46 +00:00
< div id = " post-status-select " class = " hide-if-js " >
2019-04-16 19:56:22 +00:00
< input type = " hidden " name = " hidden_post_status " id = " hidden_post_status " value = " <?php echo esc_attr( ( 'auto-draft' == $post->post_status ) ? 'draft' : $post->post_status ); ?> " />
< label for = " post_status " class = " screen-reader-text " >< ? php _e ( 'Set status' ); ?> </label>
2019-03-12 09:27:46 +00:00
< select name = " post_status " id = " post_status " >
2019-04-16 19:56:22 +00:00
< ? php if ( 'publish' == $post -> post_status ) : ?>
< option < ? php selected ( $post -> post_status , 'publish' ); ?> value='publish'><?php _e( 'Published' ); ?></option>
2019-03-12 09:27:46 +00:00
< ? php elseif ( 'private' == $post -> post_status ) : ?>
2019-04-16 19:56:22 +00:00
< option < ? php selected ( $post -> post_status , 'private' ); ?> value='publish'><?php _e( 'Privately Published' ); ?></option>
2019-03-12 09:27:46 +00:00
< ? php elseif ( 'future' == $post -> post_status ) : ?>
2019-04-16 19:56:22 +00:00
< option < ? php selected ( $post -> post_status , 'future' ); ?> value='future'><?php _e( 'Scheduled' ); ?></option>
2019-03-12 09:27:46 +00:00
< ? php endif ; ?>
2019-04-16 19:56:22 +00:00
< option < ? php selected ( $post -> post_status , 'pending' ); ?> value='pending'><?php _e( 'Pending Review' ); ?></option>
< ? php if ( 'auto-draft' == $post -> post_status ) : ?>
< option < ? php selected ( $post -> post_status , 'auto-draft' ); ?> value='draft'><?php _e( 'Draft' ); ?></option>
2019-03-12 09:27:46 +00:00
< ? php else : ?>
2019-04-16 19:56:22 +00:00
< option < ? php selected ( $post -> post_status , 'draft' ); ?> value='draft'><?php _e( 'Draft' ); ?></option>
2019-03-12 09:27:46 +00:00
< ? php endif ; ?>
</ select >
2019-04-16 19:56:22 +00:00
< a href = " #post_status " class = " save-post-status hide-if-no-js button " >< ? php _e ( 'OK' ); ?> </a>
< a href = " #post_status " class = " cancel-post-status hide-if-no-js button-cancel " >< ? php _e ( 'Cancel' ); ?> </a>
2019-03-12 09:27:46 +00:00
</ div >
< ? php } ?>
</ div ><!-- . misc - pub - section -->
< div class = " misc-pub-section misc-pub-visibility " id = " visibility " >
2019-04-16 19:56:22 +00:00
< ? php _e ( 'Visibility:' ); ?> <span id="post-visibility-display">
< ? php
if ( 'private' == $post -> post_status ) {
$post -> post_password = '' ;
$visibility = 'private' ;
$visibility_trans = __ ( 'Private' );
} elseif ( ! empty ( $post -> post_password ) ) {
$visibility = 'password' ;
$visibility_trans = __ ( 'Password protected' );
} elseif ( $post_type == 'post' && is_sticky ( $post -> ID ) ) {
$visibility = 'public' ;
$visibility_trans = __ ( 'Public, Sticky' );
} else {
$visibility = 'public' ;
$visibility_trans = __ ( 'Public' );
}
echo esc_html ( $visibility_trans );
?>
</ span >
< ? php if ( $can_publish ) { ?>
2019-03-12 09:27:46 +00:00
< a href = " #visibility " class = " edit-visibility hide-if-no-js " role = " button " >< span aria - hidden = " true " >< ? php _e ( 'Edit' ); ?> </span> <span class="screen-reader-text"><?php _e( 'Edit visibility' ); ?></span></a>
< div id = " post-visibility-select " class = " hide-if-js " >
2019-04-16 19:56:22 +00:00
< input type = " hidden " name = " hidden_post_password " id = " hidden-post-password " value = " <?php echo esc_attr( $post->post_password ); ?> " />
< ? php if ( $post_type == 'post' ) : ?>
< input type = " checkbox " style = " display:none " name = " hidden_post_sticky " id = " hidden-post-sticky " value = " sticky " < ? php checked ( is_sticky ( $post -> ID ) ); ?> />
2019-03-12 09:27:46 +00:00
< ? php endif ; ?>
< input type = " hidden " name = " hidden_post_visibility " id = " hidden-post-visibility " value = " <?php echo esc_attr( $visibility ); ?> " />
2019-04-16 19:56:22 +00:00
< input type = " radio " name = " visibility " id = " visibility-radio-public " value = " public " < ? php checked ( $visibility , 'public' ); ?> /> <label for="visibility-radio-public" class="selectit"><?php _e( 'Public' ); ?></label><br />
< ? php if ( $post_type == 'post' && current_user_can ( 'edit_others_posts' ) ) : ?>
2019-03-12 09:27:46 +00:00
< span id = " sticky-span " >< input id = " sticky " name = " sticky " type = " checkbox " value = " sticky " < ? php checked ( is_sticky ( $post -> ID ) ); ?> /> <label for="sticky" class="selectit"><?php _e( 'Stick this post to the front page' ); ?></label><br /></span>
< ? php endif ; ?>
2019-04-16 19:56:22 +00:00
< input type = " radio " name = " visibility " id = " visibility-radio-password " value = " password " < ? php checked ( $visibility , 'password' ); ?> /> <label for="visibility-radio-password" class="selectit"><?php _e( 'Password protected' ); ?></label><br />
< span id = " password-span " >< label for = " post_password " >< ? php _e ( 'Password:' ); ?> </label> <input type="text" name="post_password" id="post_password" value="<?php echo esc_attr( $post->post_password ); ?>" maxlength="255" /><br /></span>
< input type = " radio " name = " visibility " id = " visibility-radio-private " value = " private " < ? php checked ( $visibility , 'private' ); ?> /> <label for="visibility-radio-private" class="selectit"><?php _e( 'Private' ); ?></label><br />
2019-03-12 09:27:46 +00:00
< p >
2019-04-16 19:56:22 +00:00
< a href = " #visibility " class = " save-post-visibility hide-if-no-js button " >< ? php _e ( 'OK' ); ?> </a>
< a href = " #visibility " class = " cancel-post-visibility hide-if-no-js button-cancel " >< ? php _e ( 'Cancel' ); ?> </a>
2019-03-12 09:27:46 +00:00
</ p >
</ div >
< ? php } ?>
</ div ><!-- . misc - pub - section -->
2019-04-16 19:56:22 +00:00
< ? php
/* translators: Publish box date format, see https://secure.php.net/date */
$datef = __ ( 'M j, Y @ H:i' );
if ( 0 != $post -> ID ) {
if ( 'future' == $post -> post_status ) { // scheduled for publishing at a future date
/* translators: Post date information. %s: Date on which the post is currently scheduled to be published */
$stamp = __ ( 'Scheduled for: <b>%s</b>' );
} elseif ( 'publish' == $post -> post_status || 'private' == $post -> post_status ) { // already published
/* translators: Post date information. %s: Date on which the post was published */
$stamp = __ ( 'Published on: <b>%s</b>' );
} elseif ( '0000-00-00 00:00:00' == $post -> post_date_gmt ) { // draft, 1 or more saves, no date specified
$stamp = __ ( 'Publish <b>immediately</b>' );
} elseif ( time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
/* translators: Post date information. %s: Date on which the post is to be published */
$stamp = __ ( 'Schedule for: <b>%s</b>' );
} else { // draft, 1 or more saves, date specified
/* translators: Post date information. %s: Date on which the post is to be published */
$stamp = __ ( 'Publish on: <b>%s</b>' );
}
$date = date_i18n ( $datef , strtotime ( $post -> post_date ) );
} else { // draft (no saves, and thus no date specified)
$stamp = __ ( 'Publish <b>immediately</b>' );
$date = date_i18n ( $datef , strtotime ( current_time ( 'mysql' ) ) );
2019-03-12 09:27:46 +00:00
}
2019-04-16 19:56:22 +00:00
if ( ! empty ( $args [ 'args' ][ 'revisions_count' ] ) ) :
?>
2019-03-12 09:27:46 +00:00
< div class = " misc-pub-section misc-pub-revisions " >
2019-04-16 19:56:22 +00:00
< ? php
/* translators: Post revisions heading. %s: The number of available revisions */
2019-03-12 09:27:46 +00:00
printf ( __ ( 'Revisions: %s' ), '<b>' . number_format_i18n ( $args [ 'args' ][ 'revisions_count' ] ) . '</b>' );
2019-04-16 19:56:22 +00:00
?>
2019-03-12 09:27:46 +00:00
< a class = " hide-if-no-js " href = " <?php echo esc_url( get_edit_post_link( $args['args'] ['revision_id'] ) ); ?> " >< span aria - hidden = " true " >< ? php _ex ( 'Browse' , 'revisions' ); ?> </span> <span class="screen-reader-text"><?php _e( 'Browse revisions' ); ?></span></a>
</ div >
2019-04-16 19:56:22 +00:00
< ? php
endif ;
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
if ( $can_publish ) : // Contributors don't get to choose the date of publish
?>
2019-03-12 09:27:46 +00:00
< div class = " misc-pub-section curtime misc-pub-curtime " >
< span id = " timestamp " >
2019-04-16 19:56:22 +00:00
< ? php printf ( $stamp , $date ); ?> </span>
2019-03-12 09:27:46 +00:00
< a href = " #edit_timestamp " class = " edit-timestamp hide-if-no-js " role = " button " >< span aria - hidden = " true " >< ? php _e ( 'Edit' ); ?> </span> <span class="screen-reader-text"><?php _e( 'Edit date and time' ); ?></span></a>
< fieldset id = " timestampdiv " class = " hide-if-js " >
< legend class = " screen-reader-text " >< ? php _e ( 'Date and time' ); ?> </legend>
2019-04-16 19:56:22 +00:00
< ? php touch_time ( ( $action === 'edit' ), 1 ); ?>
2019-03-12 09:27:46 +00:00
</ fieldset >
</ div >< ? php // /misc-pub-section ?>
< ? php endif ; ?>
2019-04-16 19:56:22 +00:00
< ? php if ( 'draft' === $post -> post_status && get_post_meta ( $post -> ID , '_customize_changeset_uuid' , true ) ) : ?>
2019-03-12 09:27:46 +00:00
< div class = " notice notice-info notice-alt inline " >
< p >
< ? php
echo sprintf (
/* translators: %s: URL to the Customizer */
__ ( 'This draft comes from your <a href="%s">unpublished customization changes</a>. You can edit, but there’s no need to publish now. It will be published automatically with those changes.' ),
esc_url (
add_query_arg (
'changeset_uuid' ,
rawurlencode ( get_post_meta ( $post -> ID , '_customize_changeset_uuid' , true ) ),
admin_url ( 'customize.php' )
)
)
);
?>
</ p >
</ div >
2019-04-16 19:56:22 +00:00
< ? php endif ; ?>
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
< ? php
/**
* Fires after the post time / date setting in the Publish meta box .
*
* @ since 2.9 . 0
* @ since 4.4 . 0 Added the `$post` parameter .
*
* @ param WP_Post $post WP_Post object for the current post .
*/
do_action ( 'post_submitbox_misc_actions' , $post );
?>
2019-03-12 09:27:46 +00:00
</ div >
< div class = " clear " ></ div >
</ div >
< div id = " major-publishing-actions " >
2019-04-16 19:56:22 +00:00
< ? php
/**
* Fires at the beginning of the publishing actions section of the Publish meta box .
*
* @ since 2.7 . 0
* @ since 4.9 . 0 Added the `$post` parameter .
*
* @ param WP_Post | null $post WP_Post object for the current post on Edit Post screen ,
* null on Edit Link screen .
*/
do_action ( 'post_submitbox_start' , $post );
?>
2019-03-12 09:27:46 +00:00
< div id = " delete-action " >
2019-04-16 19:56:22 +00:00
< ? php
if ( current_user_can ( 'delete_post' , $post -> ID ) ) {
if ( ! EMPTY_TRASH_DAYS ) {
$delete_text = __ ( 'Delete Permanently' );
} else {
$delete_text = __ ( 'Move to Trash' );
}
?>
< a class = " submitdelete deletion " href = " <?php echo get_delete_post_link( $post->ID ); ?> " >< ? php echo $delete_text ; ?> </a>
< ? php
}
2019-03-12 09:27:46 +00:00
?>
</ div >
< div id = " publishing-action " >
< span class = " spinner " ></ span >
2019-04-16 19:56:22 +00:00
< ? php
if ( ! in_array ( $post -> post_status , array ( 'publish' , 'future' , 'private' ) ) || 0 == $post -> ID ) {
if ( $can_publish ) :
if ( ! empty ( $post -> post_date_gmt ) && time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) :
?>
2019-03-12 09:27:46 +00:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php echo esc_attr_x( 'Schedule', 'post action/button label' ); ?> " />
2019-04-16 19:56:22 +00:00
< ? php submit_button ( _x ( 'Schedule' , 'post action/button label' ), 'primary large' , 'publish' , false ); ?>
< ? php else : ?>
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php esc_attr_e( 'Publish' ); ?> " />
2019-03-12 09:27:46 +00:00
< ? php submit_button ( __ ( 'Publish' ), 'primary large' , 'publish' , false ); ?>
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
endif ;
2019-04-16 19:56:22 +00:00
else :
?>
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php esc_attr_e( 'Submit for Review' ); ?> " />
< ? php submit_button ( __ ( 'Submit for Review' ), 'primary large' , 'publish' , false ); ?>
< ? php
endif ;
} else {
?>
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php esc_attr_e( 'Update' ); ?> " />
< input name = " save " type = " submit " class = " button button-primary button-large " id = " publish " value = " <?php esc_attr_e( 'Update' ); ?> " />
< ? php
}
?>
2019-03-12 09:27:46 +00:00
</ div >
< div class = " clear " ></ div >
</ div >
</ div >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display attachment submit form fields .
*
* @ since 3.5 . 0
*
* @ param object $post
*/
function attachment_submit_meta_box ( $post ) {
2019-04-16 19:56:22 +00:00
?>
2019-03-12 09:27:46 +00:00
< div class = " submitbox " id = " submitpost " >
< div id = " minor-publishing " >
2019-04-16 19:56:22 +00:00
< ? php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
2019-03-12 09:27:46 +00:00
< div style = " display:none; " >
2019-04-16 19:56:22 +00:00
< ? php submit_button ( __ ( 'Save' ), '' , 'save' ); ?>
2019-03-12 09:27:46 +00:00
</ div >
< div id = " misc-publishing-actions " >
< div class = " misc-pub-section curtime misc-pub-curtime " >
2019-04-16 19:56:22 +00:00
< span id = " timestamp " >
< ? php
2019-03-12 09:27:46 +00:00
$date = date_i18n (
/* translators: Publish box date format, see https://secure.php.net/date */
__ ( 'M j, Y @ H:i' ),
strtotime ( $post -> post_date )
);
2019-04-16 19:56:22 +00:00
printf (
/* translators: Attachment information. %s: Date the attachment was uploaded */
__ ( 'Uploaded on: %s' ),
'<b>' . $date . '</b>'
);
?>
</ span >
2019-03-12 09:27:46 +00:00
</ div ><!-- . misc - pub - section -->
< ? php
/**
* Fires after the 'Uploaded on' section of the Save meta box
* in the attachment editing screen .
*
* @ since 3.5 . 0
* @ since 4.9 . 0 Added the `$post` parameter .
*
2019-04-16 19:56:22 +00:00
* @ param WP_Post $post WP_Post object for the current attachment .
2019-03-12 09:27:46 +00:00
*/
do_action ( 'attachment_submitbox_misc_actions' , $post );
?>
</ div ><!-- #misc-publishing-actions -->
< div class = " clear " ></ div >
</ div ><!-- #minor-publishing -->
< div id = " major-publishing-actions " >
< div id = " delete-action " >
< ? php
2019-04-16 19:56:22 +00:00
if ( current_user_can ( 'delete_post' , $post -> ID ) ) {
2019-03-12 09:27:46 +00:00
if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
2019-04-16 19:56:22 +00:00
echo " <a class='submitdelete deletion' href=' " . get_delete_post_link ( $post -> ID ) . " '> " . _x ( 'Trash' , 'verb' ) . '</a>' ;
2019-03-12 09:27:46 +00:00
} else {
$delete_ays = ! MEDIA_TRASH ? " onclick='return showNotice.warn();' " : '' ;
2019-04-16 19:56:22 +00:00
echo " <a class='submitdelete deletion' $delete_ays href=' " . get_delete_post_link ( $post -> ID , null , true ) . " '> " . __ ( 'Delete Permanently' ) . '</a>' ;
2019-03-12 09:27:46 +00:00
}
2019-04-16 19:56:22 +00:00
}
2019-03-12 09:27:46 +00:00
?>
</ div >
< div id = " publishing-action " >
< span class = " spinner " ></ span >
2019-04-16 19:56:22 +00:00
< input name = " original_publish " type = " hidden " id = " original_publish " value = " <?php esc_attr_e( 'Update' ); ?> " />
< input name = " save " type = " submit " class = " button button-primary button-large " id = " publish " value = " <?php esc_attr_e( 'Update' ); ?> " />
2019-03-12 09:27:46 +00:00
</ div >
< div class = " clear " ></ div >
</ div ><!-- #major-publishing-actions -->
</ div >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display post format form elements .
*
* @ since 3.1 . 0
*
* @ param WP_Post $post Post object .
* @ param array $box {
* Post formats meta box arguments .
*
* @ type string $id Meta box 'id' attribute .
* @ type string $title Meta box title .
* @ type callable $callback Meta box display callback .
* @ type array $args Extra meta box arguments .
* }
*/
function post_format_meta_box ( $post , $box ) {
if ( current_theme_supports ( 'post-formats' ) && post_type_supports ( $post -> post_type , 'post-formats' ) ) :
2019-04-16 19:56:22 +00:00
$post_formats = get_theme_support ( 'post-formats' );
if ( is_array ( $post_formats [ 0 ] ) ) :
$post_format = get_post_format ( $post -> ID );
if ( ! $post_format ) {
$post_format = '0' ;
}
// Add in the current one if it isn't there yet, in case the current theme doesn't support it
if ( $post_format && ! in_array ( $post_format , $post_formats [ 0 ] ) ) {
$post_formats [ 0 ][] = $post_format ;
}
?>
< div id = " post-formats-select " >
2019-03-12 09:27:46 +00:00
< fieldset >
< legend class = " screen-reader-text " >< ? php _e ( 'Post Formats' ); ?> </legend>
< input type = " radio " name = " post_format " class = " post-format " id = " post-format-0 " value = " 0 " < ? php checked ( $post_format , '0' ); ?> /> <label for="post-format-0" class="post-format-icon post-format-standard"><?php echo get_post_format_string( 'standard' ); ?></label>
< ? php foreach ( $post_formats [ 0 ] as $format ) : ?>
< br />< input type = " radio " name = " post_format " class = " post-format " id = " post-format-<?php echo esc_attr( $format ); ?> " value = " <?php echo esc_attr( $format ); ?> " < ? php checked ( $post_format , $format ); ?> /> <label for="post-format-<?php echo esc_attr( $format ); ?>" class="post-format-icon post-format-<?php echo esc_attr( $format ); ?>"><?php echo esc_html( get_post_format_string( $format ) ); ?></label>
< ? php endforeach ; ?>
</ fieldset >
</ div >
2019-04-16 19:56:22 +00:00
< ? php
endif ;
endif ;
2019-03-12 09:27:46 +00:00
}
/**
* Display post tags form fields .
*
* @ since 2.6 . 0
*
* @ todo Create taxonomy - agnostic wrapper for this .
*
* @ param WP_Post $post Post object .
* @ param array $box {
* Tags meta box arguments .
*
* @ type string $id Meta box 'id' attribute .
* @ type string $title Meta box title .
* @ type callable $callback Meta box display callback .
* @ type array $args {
* Extra meta box arguments .
*
* @ type string $taxonomy Taxonomy . Default 'post_tag' .
* }
* }
*/
function post_tags_meta_box ( $post , $box ) {
$defaults = array ( 'taxonomy' => 'post_tag' );
if ( ! isset ( $box [ 'args' ] ) || ! is_array ( $box [ 'args' ] ) ) {
$args = array ();
} else {
$args = $box [ 'args' ];
}
2019-04-16 19:56:22 +00:00
$r = wp_parse_args ( $args , $defaults );
$tax_name = esc_attr ( $r [ 'taxonomy' ] );
$taxonomy = get_taxonomy ( $r [ 'taxonomy' ] );
2019-03-12 09:27:46 +00:00
$user_can_assign_terms = current_user_can ( $taxonomy -> cap -> assign_terms );
2019-04-16 19:56:22 +00:00
$comma = _x ( ',' , 'tag delimiter' );
$terms_to_edit = get_terms_to_edit ( $post -> ID , $tax_name );
2019-03-12 09:27:46 +00:00
if ( ! is_string ( $terms_to_edit ) ) {
$terms_to_edit = '' ;
}
2019-04-16 19:56:22 +00:00
?>
2019-03-12 09:27:46 +00:00
< div class = " tagsdiv " id = " <?php echo $tax_name ; ?> " >
< div class = " jaxtag " >
< div class = " nojs-tags hide-if-js " >
< label for = " tax-input-<?php echo $tax_name ; ?> " >< ? php echo $taxonomy -> labels -> add_or_remove_items ; ?> </label>
< p >< textarea name = " <?php echo " tax_input [ $tax_name ] " ; ?> " rows = " 3 " cols = " 20 " class = " the-tags " id = " tax-input-<?php echo $tax_name ; ?> " < ? php disabled ( ! $user_can_assign_terms ); ?> aria-describedby="new-tag-<?php echo $tax_name; ?>-desc"><?php echo str_replace( ',', $comma . ' ', $terms_to_edit ); // textarea_escaped by esc_attr() ?></textarea></p>
</ div >
2019-04-16 19:56:22 +00:00
< ? php if ( $user_can_assign_terms ) : ?>
2019-03-12 09:27:46 +00:00
< div class = " ajaxtag hide-if-no-js " >
< label class = " screen-reader-text " for = " new-tag-<?php echo $tax_name ; ?> " >< ? php echo $taxonomy -> labels -> add_new_item ; ?> </label>
2019-04-16 19:56:22 +00:00
< input data - wp - taxonomy = " <?php echo $tax_name ; ?> " type = " text " id = " new-tag-<?php echo $tax_name ; ?> " name = " newtag[<?php echo $tax_name ; ?>] " class = " newtag form-input-tip " size = " 16 " autocomplete = " off " aria - describedby = " new-tag-<?php echo $tax_name ; ?>-desc " value = " " />
< input type = " button " class = " button tagadd " value = " <?php esc_attr_e( 'Add' ); ?> " />
2019-03-12 09:27:46 +00:00
</ div >
< p class = " howto " id = " new-tag-<?php echo $tax_name ; ?>-desc " >< ? php echo $taxonomy -> labels -> separate_items_with_commas ; ?> </p>
2019-04-16 19:56:22 +00:00
< ? php elseif ( empty ( $terms_to_edit ) ) : ?>
2019-03-12 09:27:46 +00:00
< p >< ? php echo $taxonomy -> labels -> no_terms ; ?> </p>
< ? php endif ; ?>
</ div >
< ul class = " tagchecklist " role = " list " ></ ul >
</ div >
2019-04-16 19:56:22 +00:00
< ? php if ( $user_can_assign_terms ) : ?>
2019-03-12 09:27:46 +00:00
< p class = " hide-if-no-js " >< button type = " button " class = " button-link tagcloud-link " id = " link-<?php echo $tax_name ; ?> " aria - expanded = " false " >< ? php echo $taxonomy -> labels -> choose_from_most_used ; ?> </button></p>
< ? php endif ; ?>
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display post categories form fields .
*
* @ since 2.6 . 0
*
* @ todo Create taxonomy - agnostic wrapper for this .
*
* @ param WP_Post $post Post object .
* @ param array $box {
* Categories meta box arguments .
*
* @ type string $id Meta box 'id' attribute .
* @ type string $title Meta box title .
* @ type callable $callback Meta box display callback .
* @ type array $args {
* Extra meta box arguments .
*
* @ type string $taxonomy Taxonomy . Default 'category' .
* }
* }
*/
function post_categories_meta_box ( $post , $box ) {
$defaults = array ( 'taxonomy' => 'category' );
if ( ! isset ( $box [ 'args' ] ) || ! is_array ( $box [ 'args' ] ) ) {
$args = array ();
} else {
$args = $box [ 'args' ];
}
2019-04-16 19:56:22 +00:00
$r = wp_parse_args ( $args , $defaults );
2019-03-12 09:27:46 +00:00
$tax_name = esc_attr ( $r [ 'taxonomy' ] );
$taxonomy = get_taxonomy ( $r [ 'taxonomy' ] );
?>
< div id = " taxonomy-<?php echo $tax_name ; ?> " class = " categorydiv " >
< ul id = " <?php echo $tax_name ; ?>-tabs " class = " category-tabs " >
< li class = " tabs " >< a href = " #<?php echo $tax_name ; ?>-all " >< ? php echo $taxonomy -> labels -> all_items ; ?> </a></li>
< li class = " hide-if-no-js " >< a href = " #<?php echo $tax_name ; ?>-pop " >< ? php echo esc_html ( $taxonomy -> labels -> most_used ); ?> </a></li>
</ ul >
< div id = " <?php echo $tax_name ; ?>-pop " class = " tabs-panel " style = " display: none; " >
< ul id = " <?php echo $tax_name ; ?>checklist-pop " class = " categorychecklist form-no-clear " >
< ? php $popular_ids = wp_popular_terms_checklist ( $tax_name ); ?>
</ ul >
</ div >
< div id = " <?php echo $tax_name ; ?>-all " class = " tabs-panel " >
< ? php
$name = ( $tax_name == 'category' ) ? 'post_category' : 'tax_input[' . $tax_name . ']' ;
echo " <input type='hidden' name=' { $name } []' value='0' /> " ; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
?>
< ul id = " <?php echo $tax_name ; ?>checklist " data - wp - lists = " list:<?php echo $tax_name ; ?> " class = " categorychecklist form-no-clear " >
2019-04-16 19:56:22 +00:00
< ? php
wp_terms_checklist (
$post -> ID ,
array (
'taxonomy' => $tax_name ,
'popular_cats' => $popular_ids ,
)
);
?>
2019-03-12 09:27:46 +00:00
</ ul >
</ div >
< ? php if ( current_user_can ( $taxonomy -> cap -> edit_terms ) ) : ?>
< div id = " <?php echo $tax_name ; ?>-adder " class = " wp-hidden-children " >
< a id = " <?php echo $tax_name ; ?>-add-toggle " href = " #<?php echo $tax_name ; ?>-add " class = " hide-if-no-js taxonomy-add-new " >
< ? php
/* translators: %s: add new taxonomy label */
printf ( __ ( '+ %s' ), $taxonomy -> labels -> add_new_item );
?>
</ a >
< p id = " <?php echo $tax_name ; ?>-add " class = " category-add wp-hidden-child " >
< label class = " screen-reader-text " for = " new<?php echo $tax_name ; ?> " >< ? php echo $taxonomy -> labels -> add_new_item ; ?> </label>
< input type = " text " name = " new<?php echo $tax_name ; ?> " id = " new<?php echo $tax_name ; ?> " class = " form-required form-input-tip " value = " <?php echo esc_attr( $taxonomy->labels ->new_item_name ); ?> " aria - required = " true " />
< label class = " screen-reader-text " for = " new<?php echo $tax_name ; ?>_parent " >
< ? php echo $taxonomy -> labels -> parent_item_colon ; ?>
</ label >
< ? php
$parent_dropdown_args = array (
'taxonomy' => $tax_name ,
'hide_empty' => 0 ,
'name' => 'new' . $tax_name . '_parent' ,
'orderby' => 'name' ,
'hierarchical' => 1 ,
'show_option_none' => '— ' . $taxonomy -> labels -> parent_item . ' —' ,
);
/**
* Filters the arguments for the taxonomy parent dropdown on the Post Edit page .
*
* @ since 4.4 . 0
*
* @ param array $parent_dropdown_args {
* Optional . Array of arguments to generate parent dropdown .
*
* @ type string $taxonomy Name of the taxonomy to retrieve .
* @ type bool $hide_if_empty True to skip generating markup if no
* categories are found . Default 0.
* @ type string $name Value for the 'name' attribute
* of the select element .
* Default " new { $tax_name } _parent " .
* @ type string $orderby Which column to use for ordering
* terms . Default 'name' .
* @ type bool | int $hierarchical Whether to traverse the taxonomy
* hierarchy . Default 1.
* @ type string $show_option_none Text to display for the " none " option .
* Default " — { $parent } — " ,
* where `$parent` is 'parent_item'
* taxonomy label .
* }
*/
$parent_dropdown_args = apply_filters ( 'post_edit_category_parent_dropdown_args' , $parent_dropdown_args );
wp_dropdown_categories ( $parent_dropdown_args );
?>
< input type = " button " id = " <?php echo $tax_name ; ?>-add-submit " data - wp - lists = " add:<?php echo $tax_name ; ?>checklist:<?php echo $tax_name ; ?>-add " class = " button category-add-submit " value = " <?php echo esc_attr( $taxonomy->labels ->add_new_item ); ?> " />
< ? php wp_nonce_field ( 'add-' . $tax_name , '_ajax_nonce-add-' . $tax_name , false ); ?>
< span id = " <?php echo $tax_name ; ?>-ajax-response " ></ span >
</ p >
</ div >
< ? php endif ; ?>
</ div >
< ? php
}
/**
* Display post excerpt form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_excerpt_meta_box ( $post ) {
?>
< label class = " screen-reader-text " for = " excerpt " >< ? php _e ( 'Excerpt' ); ?> </label><textarea rows="1" cols="40" name="excerpt" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea>
< p >
< ? php
2019-03-12 09:27:46 +00:00
printf (
/* translators: %s: Codex URL */
__ ( 'Excerpts are optional hand-crafted summaries of your content that can be used in your theme. <a href="%s">Learn more about manual excerpts</a>.' ),
__ ( 'https://codex.wordpress.org/Excerpt' )
);
2019-04-16 19:56:22 +00:00
?>
</ p >
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display trackback links form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_trackback_meta_box ( $post ) {
2019-03-12 09:27:46 +00:00
$form_trackback = '<input type="text" name="trackback_url" id="trackback_url" class="code" value="' .
esc_attr ( str_replace ( " \n " , ' ' , $post -> to_ping ) ) . '" aria-describedby="trackback-url-desc" />' ;
2019-04-16 19:56:22 +00:00
if ( '' != $post -> pinged ) {
$pings = '<p>' . __ ( 'Already pinged:' ) . '</p><ul>' ;
$already_pinged = explode ( " \n " , trim ( $post -> pinged ) );
foreach ( $already_pinged as $pinged_url ) {
$pings .= " \n \t <li> " . esc_html ( $pinged_url ) . '</li>' ;
2019-03-12 09:27:46 +00:00
}
$pings .= '</ul>' ;
}
2019-04-16 19:56:22 +00:00
?>
2019-03-12 09:27:46 +00:00
< p >
< label for = " trackback_url " >< ? php _e ( 'Send trackbacks to:' ); ?> </label>
< ? php echo $form_trackback ; ?>
</ p >
< p id = " trackback-url-desc " class = " howto " >< ? php _e ( 'Separate multiple URLs with spaces' ); ?> </p>
2019-04-16 19:56:22 +00:00
< p >
< ? php
2019-03-12 09:27:46 +00:00
printf (
/* translators: %s: Codex URL */
__ ( 'Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress sites, they’ll be notified automatically using <a href="%s">pingbacks</a>, no other action necessary.' ),
__ ( 'https://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments' )
);
2019-04-16 19:56:22 +00:00
?>
</ p >
< ? php
if ( ! empty ( $pings ) ) {
echo $pings ;
}
2019-03-12 09:27:46 +00:00
}
/**
* Display custom fields form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_custom_meta_box ( $post ) {
?>
2019-03-12 09:27:46 +00:00
< div id = " postcustomstuff " >
< div id = " ajax-response " ></ div >
2019-04-16 19:56:22 +00:00
< ? php
$metadata = has_meta ( $post -> ID );
foreach ( $metadata as $key => $value ) {
if ( is_protected_meta ( $metadata [ $key ][ 'meta_key' ], 'post' ) || ! current_user_can ( 'edit_post_meta' , $post -> ID , $metadata [ $key ][ 'meta_key' ] ) ) {
unset ( $metadata [ $key ] );
}
}
list_meta ( $metadata );
meta_form ( $post );
?>
2019-03-12 09:27:46 +00:00
</ div >
2019-04-16 19:56:22 +00:00
< p >
< ? php
2019-03-12 09:27:46 +00:00
printf (
/* translators: %s: Codex URL */
__ ( 'Custom fields can be used to add extra metadata to a post that you can <a href="%s">use in your theme</a>.' ),
__ ( 'https://codex.wordpress.org/Using_Custom_Fields' )
);
2019-04-16 19:56:22 +00:00
?>
</ p >
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display comments status form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_comment_status_meta_box ( $post ) {
?>
2019-03-12 09:27:46 +00:00
< input name = " advanced_view " type = " hidden " value = " 1 " />
< p class = " meta-options " >
2019-04-16 19:56:22 +00:00
< label for = " comment_status " class = " selectit " >< input name = " comment_status " type = " checkbox " id = " comment_status " value = " open " < ? php checked ( $post -> comment_status , 'open' ); ?> /> <?php _e( 'Allow comments' ); ?></label><br />
< label for = " ping_status " class = " selectit " >< input name = " ping_status " type = " checkbox " id = " ping_status " value = " open " < ? php checked ( $post -> ping_status , 'open' ); ?> />
< ? php
2019-03-12 09:27:46 +00:00
printf (
/* translators: %s: Codex URL */
__ ( 'Allow <a href="%s">trackbacks and pingbacks</a> on this page' ),
2019-04-16 19:56:22 +00:00
__ ( 'https://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments' )
);
?>
</ label >
2019-03-12 09:27:46 +00:00
< ? php
/**
* Fires at the end of the Discussion meta box on the post editing screen .
*
* @ since 3.1 . 0
*
* @ param WP_Post $post WP_Post object of the current post .
*/
do_action ( 'post_comment_status_meta_box-options' , $post );
?>
</ p >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display comments for post table header
*
* @ since 3.0 . 0
*
* @ param array $result table header rows
* @ return array
*/
2019-04-16 19:56:22 +00:00
function post_comment_meta_box_thead ( $result ) {
unset ( $result [ 'cb' ], $result [ 'response' ] );
2019-03-12 09:27:46 +00:00
return $result ;
}
/**
* Display comments for post .
*
* @ since 2.8 . 0
*
* @ param object $post
*/
function post_comment_meta_box ( $post ) {
wp_nonce_field ( 'get-comments' , 'add_comment_nonce' , false );
?>
2019-04-16 19:56:22 +00:00
< p class = " hide-if-no-js " id = " add-new-comment " >< a class = " button " href = " #commentstatusdiv " onclick = " window.commentReply && commentReply.addcomment(<?php echo $post->ID ; ?>);return false; " >< ? php _e ( 'Add comment' ); ?> </a></p>
2019-03-12 09:27:46 +00:00
< ? php
2019-04-16 19:56:22 +00:00
$total = get_comments (
array (
'post_id' => $post -> ID ,
'number' => 1 ,
'count' => true ,
)
);
$wp_list_table = _get_list_table ( 'WP_Post_Comments_List_Table' );
2019-03-12 09:27:46 +00:00
$wp_list_table -> display ( true );
if ( 1 > $total ) {
2019-04-16 19:56:22 +00:00
echo '<p id="no-comments">' . __ ( 'No comments yet.' ) . '</p>' ;
2019-03-12 09:27:46 +00:00
} else {
$hidden = get_hidden_meta_boxes ( get_current_screen () );
2019-04-16 19:56:22 +00:00
if ( ! in_array ( 'commentsdiv' , $hidden ) ) {
2019-03-12 09:27:46 +00:00
?>
< script type = " text/javascript " > jQuery ( document ) . ready ( function (){ commentsBox . get ( < ? php echo $total ; ?> , 10);});</script>
< ? php
}
?>
2019-04-16 19:56:22 +00:00
< p class = " hide-if-no-js " id = " show-comments " >< a href = " #commentstatusdiv " onclick = " commentsBox.load(<?php echo $total ; ?>);return false; " >< ? php _e ( 'Show comments' ); ?> </a> <span class="spinner"></span></p>
2019-03-12 09:27:46 +00:00
< ? php
}
wp_comment_trashnotice ();
}
/**
* Display slug form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_slug_meta_box ( $post ) {
/** This filter is documented in wp-admin/edit-tag-form.php */
$editable_slug = apply_filters ( 'editable_slug' , $post -> post_name , $post );
?>
< label class = " screen-reader-text " for = " post_name " >< ? php _e ( 'Slug' ); ?> </label><input name="post_name" type="text" size="13" id="post_name" value="<?php echo esc_attr( $editable_slug ); ?>" />
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display form field with list of authors .
*
* @ since 2.6 . 0
*
* @ global int $user_ID
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function post_author_meta_box ( $post ) {
2019-03-12 09:27:46 +00:00
global $user_ID ;
2019-04-16 19:56:22 +00:00
?>
< label class = " screen-reader-text " for = " post_author_override " >< ? php _e ( 'Author' ); ?> </label>
< ? php
wp_dropdown_users (
array (
'who' => 'authors' ,
'name' => 'post_author_override' ,
'selected' => empty ( $post -> ID ) ? $user_ID : $post -> post_author ,
'include_selected' => true ,
'show' => 'display_name_with_login' ,
)
);
2019-03-12 09:27:46 +00:00
}
/**
* Display list of revisions .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
function post_revisions_meta_box ( $post ) {
wp_list_post_revisions ( $post );
}
// -- Page related Meta Boxes
/**
* Display page attributes form fields .
*
* @ since 2.7 . 0
*
* @ param object $post
*/
2019-04-16 19:56:22 +00:00
function page_attributes_meta_box ( $post ) {
2019-03-12 09:27:46 +00:00
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' ,
2019-04-16 19:56:22 +00:00
'show_option_none' => __ ( '(no parent)' ),
2019-03-12 09:27:46 +00:00
'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 );
2019-04-16 19:56:22 +00:00
$pages = wp_dropdown_pages ( $dropdown_args );
if ( ! empty ( $pages ) ) :
?>
2019-03-12 09:27:46 +00:00
< p class = " post-attributes-label-wrapper " >< label class = " post-attributes-label " for = " parent_id " >< ? php _e ( 'Parent' ); ?> </label></p>
2019-04-16 19:56:22 +00:00
< ? php echo $pages ; ?>
< ? php
2019-03-12 09:27:46 +00:00
endif ; // end empty pages check
endif ; // end hierarchical check.
if ( count ( get_page_templates ( $post ) ) > 0 && get_option ( 'page_for_posts' ) != $post -> ID ) :
$template = ! empty ( $post -> page_template ) ? $post -> page_template : false ;
?>
2019-04-16 19:56:22 +00:00
< p class = " post-attributes-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 $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 >
2019-03-12 09:27:46 +00:00
< select name = " page_template " id = " page_template " >
2019-04-16 19:56:22 +00:00
< ? 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' );
?>
2019-03-12 09:27:46 +00:00
< option value = " default " >< ? php echo esc_html ( $default_title ); ?> </option>
2019-04-16 19:56:22 +00:00
< ? php page_template_dropdown ( $template , $post -> post_type ); ?>
2019-03-12 09:27:46 +00:00
</ select >
< ? php endif ; ?>
2019-04-16 19:56:22 +00:00
< ? php if ( post_type_supports ( $post -> post_type , 'page-attributes' ) ) : ?>
2019-03-12 09:27:46 +00:00
< p class = " post-attributes-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 ); ?> " />
2019-04-16 19:56:22 +00:00
< ? 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 () ) : ?>
2019-03-12 09:27:46 +00:00
< p >< ? php _e ( 'Need help? Use the Help tab above the screen title.' ); ?> </p>
2019-04-16 19:56:22 +00:00
< ? php
endif ;
2019-03-12 09:27:46 +00:00
endif ;
}
// -- Link related Meta Boxes
/**
* Display link create form fields .
*
* @ since 2.7 . 0
*
* @ param object $link
*/
2019-04-16 19:56:22 +00:00
function link_submit_meta_box ( $link ) {
?>
2019-03-12 09:27:46 +00:00
< div class = " submitbox " id = " submitlink " >
< div id = " minor-publishing " >
2019-04-16 19:56:22 +00:00
< ? php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
2019-03-12 09:27:46 +00:00
< div style = " display:none; " >
2019-04-16 19:56:22 +00:00
< ? php submit_button ( __ ( 'Save' ), '' , 'save' , false ); ?>
2019-03-12 09:27:46 +00:00
</ div >
< div id = " minor-publishing-actions " >
< div id = " preview-action " >
2019-04-16 19:56:22 +00:00
< ? php if ( ! empty ( $link -> link_id ) ) { ?>
< a class = " preview button " href = " <?php echo $link->link_url ; ?> " target = " _blank " >< ? php _e ( 'Visit Link' ); ?> </a>
2019-03-12 09:27:46 +00:00
< ? php } ?>
</ div >
< div class = " clear " ></ div >
</ div >
< div id = " misc-publishing-actions " >
< div class = " misc-pub-section misc-pub-private " >
2019-04-16 19:56:22 +00:00
< label for = " link_private " class = " selectit " >< input id = " link_private " name = " link_visible " type = " checkbox " value = " N " < ? php checked ( $link -> link_visible , 'N' ); ?> /> <?php _e( 'Keep this link private' ); ?></label>
2019-03-12 09:27:46 +00:00
</ div >
</ div >
</ div >
< div id = " major-publishing-actions " >
2019-04-16 19:56:22 +00:00
< ? php
/** This action is documented in wp-admin/includes/meta-boxes.php */
do_action ( 'post_submitbox_start' , null );
?>
2019-03-12 09:27:46 +00:00
< div id = " delete-action " >
2019-04-16 19:56:22 +00:00
< ? php
if ( ! empty ( $_GET [ 'action' ] ) && 'edit' == $_GET [ 'action' ] && current_user_can ( 'manage_links' ) ) {
?>
< a class = " submitdelete deletion " href = " <?php echo wp_nonce_url( " link . php ? action = delete & amp ; link_id = $link -> link_id " , 'delete-bookmark_' . $link->link_id ); ?> " onclick = " if ( confirm('<?php echo esc_js( sprintf( __( " You are about to delete this link '%s' \n 'Cancel' to stop , 'OK' to delete . " ), $link->link_name ) ); ?>') ) { return true;}return false; " >< ? php _e ( 'Delete' ); ?> </a>
2019-03-12 09:27:46 +00:00
< ? php } ?>
</ div >
< div id = " publishing-action " >
2019-04-16 19:56:22 +00:00
< ? php if ( ! empty ( $link -> link_id ) ) { ?>
< input name = " save " type = " submit " class = " button button-primary button-large " id = " publish " value = " <?php esc_attr_e( 'Update Link' ); ?> " />
2019-03-12 09:27:46 +00:00
< ? php } else { ?>
2019-04-16 19:56:22 +00:00
< input name = " save " type = " submit " class = " button button-primary button-large " id = " publish " value = " <?php esc_attr_e( 'Add Link' ); ?> " />
2019-03-12 09:27:46 +00:00
< ? php } ?>
</ div >
< div class = " clear " ></ div >
</ div >
2019-04-16 19:56:22 +00:00
< ? php
/**
* Fires at the end of the Publish box in the Link editing screen .
*
* @ since 2.5 . 0
*/
do_action ( 'submitlink_box' );
?>
2019-03-12 09:27:46 +00:00
< div class = " clear " ></ div >
</ div >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display link categories form fields .
*
* @ since 2.6 . 0
*
* @ param object $link
*/
2019-04-16 19:56:22 +00:00
function link_categories_meta_box ( $link ) {
?>
2019-03-12 09:27:46 +00:00
< div id = " taxonomy-linkcategory " class = " categorydiv " >
< ul id = " category-tabs " class = " category-tabs " >
< li class = " tabs " >< a href = " #categories-all " >< ? php _e ( 'All Categories' ); ?> </a></li>
< li class = " hide-if-no-js " >< a href = " #categories-pop " >< ? php _ex ( 'Most Used' , 'categories' ); ?> </a></li>
</ ul >
< div id = " categories-all " class = " tabs-panel " >
< ul id = " categorychecklist " data - wp - lists = " list:category " class = " categorychecklist form-no-clear " >
< ? php
2019-04-16 19:56:22 +00:00
if ( isset ( $link -> link_id ) ) {
wp_link_category_checklist ( $link -> link_id );
} else {
2019-03-12 09:27:46 +00:00
wp_link_category_checklist ();
2019-04-16 19:56:22 +00:00
}
2019-03-12 09:27:46 +00:00
?>
</ ul >
</ div >
< div id = " categories-pop " class = " tabs-panel " style = " display: none; " >
< ul id = " categorychecklist-pop " class = " categorychecklist form-no-clear " >
2019-04-16 19:56:22 +00:00
< ? php wp_popular_terms_checklist ( 'link_category' ); ?>
2019-03-12 09:27:46 +00:00
</ ul >
</ div >
< div id = " category-adder " class = " wp-hidden-children " >
< a id = " category-add-toggle " href = " #category-add " class = " taxonomy-add-new " >< ? php _e ( '+ Add New Category' ); ?> </a>
< p id = " link-category-add " class = " wp-hidden-child " >
< label class = " screen-reader-text " for = " newcat " >< ? php _e ( '+ Add New Category' ); ?> </label>
< input type = " text " name = " newcat " id = " newcat " class = " form-required form-input-tip " value = " <?php esc_attr_e( 'New category name' ); ?> " aria - required = " true " />
< input type = " button " id = " link-category-add-submit " data - wp - lists = " add:categorychecklist:link-category-add " class = " button " value = " <?php esc_attr_e( 'Add' ); ?> " />
< ? php wp_nonce_field ( 'add-link-category' , '_ajax_nonce' , false ); ?>
< span id = " category-ajax-response " ></ span >
</ p >
</ div >
</ div >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display form fields for changing link target .
*
* @ since 2.6 . 0
*
* @ param object $link
*/
2019-04-16 19:56:22 +00:00
function link_target_meta_box ( $link ) {
?>
< fieldset >< legend class = " screen-reader-text " >< span >< ? php _e ( 'Target' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< p >< label for = " link_target_blank " class = " selectit " >
2019-04-16 19:56:22 +00:00
< input id = " link_target_blank " type = " radio " name = " link_target " value = " _blank " < ? php echo ( isset ( $link -> link_target ) && ( $link -> link_target == '_blank' ) ? 'checked="checked"' : '' ); ?> />
< ? php _e ( '<code>_blank</code> — new window or tab.' ); ?> </label></p>
2019-03-12 09:27:46 +00:00
< p >< label for = " link_target_top " class = " selectit " >
2019-04-16 19:56:22 +00:00
< input id = " link_target_top " type = " radio " name = " link_target " value = " _top " < ? php echo ( isset ( $link -> link_target ) && ( $link -> link_target == '_top' ) ? 'checked="checked"' : '' ); ?> />
< ? php _e ( '<code>_top</code> — current window or tab, with no frames.' ); ?> </label></p>
2019-03-12 09:27:46 +00:00
< p >< label for = " link_target_none " class = " selectit " >
2019-04-16 19:56:22 +00:00
< input id = " link_target_none " type = " radio " name = " link_target " value = " " < ? php echo ( isset ( $link -> link_target ) && ( $link -> link_target == '' ) ? 'checked="checked"' : '' ); ?> />
< ? php _e ( '<code>_none</code> — same window or tab.' ); ?> </label></p>
2019-03-12 09:27:46 +00:00
</ fieldset >
2019-04-16 19:56:22 +00:00
< p >< ? php _e ( 'Choose the target frame for your link.' ); ?> </p>
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display checked checkboxes attribute for xfn microformat options .
*
* @ since 1.0 . 1
*
* @ global object $link
*
* @ param string $class
* @ param string $value
* @ param mixed $deprecated Never used .
*/
function xfn_check ( $class , $value = '' , $deprecated = '' ) {
global $link ;
if ( ! empty ( $deprecated ) ) {
_deprecated_argument ( __FUNCTION__ , '2.5.0' ); // Never implemented
}
$link_rel = isset ( $link -> link_rel ) ? $link -> link_rel : '' ; // In PHP 5.3: $link_rel = $link->link_rel ?: '';
2019-04-16 19:56:22 +00:00
$rels = preg_split ( '/\s+/' , $link_rel );
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
if ( '' != $value && in_array ( $value , $rels ) ) {
2019-03-12 09:27:46 +00:00
echo ' checked="checked"' ;
}
2019-04-16 19:56:22 +00:00
if ( '' == $value ) {
if ( 'family' == $class && strpos ( $link_rel , 'child' ) === false && strpos ( $link_rel , 'parent' ) === false && strpos ( $link_rel , 'sibling' ) === false && strpos ( $link_rel , 'spouse' ) === false && strpos ( $link_rel , 'kin' ) === false ) {
echo ' checked="checked"' ;
}
if ( 'friendship' == $class && strpos ( $link_rel , 'friend' ) === false && strpos ( $link_rel , 'acquaintance' ) === false && strpos ( $link_rel , 'contact' ) === false ) {
echo ' checked="checked"' ;
}
if ( 'geographical' == $class && strpos ( $link_rel , 'co-resident' ) === false && strpos ( $link_rel , 'neighbor' ) === false ) {
echo ' checked="checked"' ;
}
if ( 'identity' == $class && in_array ( 'me' , $rels ) ) {
echo ' checked="checked"' ;
}
2019-03-12 09:27:46 +00:00
}
}
/**
* Display xfn form fields .
*
* @ since 2.6 . 0
*
* @ param object $link
*/
2019-04-16 19:56:22 +00:00
function link_xfn_meta_box ( $link ) {
?>
2019-03-12 09:27:46 +00:00
< table class = " links-table " >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< label for = " link_rel " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'rel:' ); ?> </label></th>
< td >< input type = " text " name = " link_rel " id = " link_rel " value = " <?php echo ( isset( $link->link_rel ) ? esc_attr( $link->link_rel ) : '' ); ?> " /></ td >
2019-03-12 09:27:46 +00:00
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'identity' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'identity' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " me " >
2019-04-16 19:56:22 +00:00
< input type = " checkbox " name = " identity " value = " me " id = " me " < ? php xfn_check ( 'identity' , 'me' ); ?> />
< ? php _e ( 'another web address of mine' ); ?> </label>
2019-03-12 09:27:46 +00:00
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'friendship' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'friendship' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " contact " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " friendship " value = " contact " id = " contact " < ? php xfn_check ( 'friendship' , 'contact' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'contact' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " acquaintance " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " friendship " value = " acquaintance " id = " acquaintance " < ? php xfn_check ( 'friendship' , 'acquaintance' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'acquaintance' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " friend " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " friendship " value = " friend " id = " friend " < ? php xfn_check ( 'friendship' , 'friend' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'friend' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " friendship " >
2019-04-16 19:56:22 +00:00
< input name = " friendship " type = " radio " class = " valinp " value = " " id = " friendship " < ? php xfn_check ( 'friendship' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'none' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " > < ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'physical' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'physical' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " met " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " physical " value = " met " id = " met " < ? php xfn_check ( 'physical' , 'met' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'met' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " > < ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'professional' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'professional' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " co-worker " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " professional " value = " co-worker " id = " co-worker " < ? php xfn_check ( 'professional' , 'co-worker' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'co-worker' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " colleague " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " professional " value = " colleague " id = " colleague " < ? php xfn_check ( 'professional' , 'colleague' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'colleague' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'geographical' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span > < ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'geographical' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " co-resident " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " geographical " value = " co-resident " id = " co-resident " < ? php xfn_check ( 'geographical' , 'co-resident' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'co-resident' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " neighbor " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " geographical " value = " neighbor " id = " neighbor " < ? php xfn_check ( 'geographical' , 'neighbor' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'neighbor' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " geographical " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " geographical " value = " " id = " geographical " < ? php xfn_check ( 'geographical' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'none' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'family' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span > < ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'family' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " child " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " child " id = " child " < ? php xfn_check ( 'family' , 'child' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'child' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " kin " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " kin " id = " kin " < ? php xfn_check ( 'family' , 'kin' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'kin' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " parent " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " parent " id = " parent " < ? php xfn_check ( 'family' , 'parent' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'parent' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " sibling " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " sibling " id = " sibling " < ? php xfn_check ( 'family' , 'sibling' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'sibling' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " spouse " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " spouse " id = " spouse " < ? php xfn_check ( 'family' , 'spouse' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'spouse' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " family " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " radio " name = " family " value = " " id = " family " < ? php xfn_check ( 'family' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'none' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'romantic' ); ?> </th>
< td >< fieldset >< legend class = " screen-reader-text " >< span > < ? php /* translators: xfn: http://gmpg.org/xfn/ */ _e ( 'romantic' ); ?> </span></legend>
2019-03-12 09:27:46 +00:00
< label for = " muse " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " romantic " value = " muse " id = " muse " < ? php xfn_check ( 'romantic' , 'muse' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'muse' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " crush " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " romantic " value = " crush " id = " crush " < ? php xfn_check ( 'romantic' , 'crush' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'crush' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " date " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " romantic " value = " date " id = " date " < ? php xfn_check ( 'romantic' , 'date' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'date' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
< label for = " romantic " >
2019-04-16 19:56:22 +00:00
< input class = " valinp " type = " checkbox " name = " romantic " value = " sweetheart " id = " romantic " < ? php xfn_check ( 'romantic' , 'sweetheart' ); ?> /> <?php /* translators: xfn: http://gmpg.org/xfn/ */ _e( 'sweetheart' ); ?>
2019-03-12 09:27:46 +00:00
</ label >
</ fieldset ></ td >
</ tr >
</ table >
2019-04-16 19:56:22 +00:00
< p >< ? php _e ( 'If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out <a href="http://gmpg.org/xfn/">XFN</a>.' ); ?> </p>
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display advanced link options form fields .
*
* @ since 2.6 . 0
*
* @ param object $link
*/
2019-04-16 19:56:22 +00:00
function link_advanced_meta_box ( $link ) {
?>
2019-03-12 09:27:46 +00:00
< table class = " links-table " cellpadding = " 0 " >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< label for = " link_image " >< ? php _e ( 'Image Address' ); ?> </label></th>
< td >< input type = " text " name = " link_image " class = " code " id = " link_image " maxlength = " 255 " value = " <?php echo ( isset( $link->link_image ) ? esc_attr( $link->link_image ) : '' ); ?> " /></ td >
2019-03-12 09:27:46 +00:00
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< label for = " rss_uri " >< ? php _e ( 'RSS Address' ); ?> </label></th>
< td >< input name = " link_rss " class = " code " type = " text " id = " rss_uri " maxlength = " 255 " value = " <?php echo ( isset( $link->link_rss ) ? esc_attr( $link->link_rss ) : '' ); ?> " /></ td >
2019-03-12 09:27:46 +00:00
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< label for = " link_notes " >< ? php _e ( 'Notes' ); ?> </label></th>
< td >< textarea name = " link_notes " id = " link_notes " rows = " 10 " >< ? php echo ( isset ( $link -> link_notes ) ? $link -> link_notes : '' ); // textarea_escaped ?></textarea></td>
2019-03-12 09:27:46 +00:00
</ tr >
< tr >
2019-04-16 19:56:22 +00:00
< th scope = " row " >< label for = " link_rating " >< ? php _e ( 'Rating' ); ?> </label></th>
2019-03-12 09:27:46 +00:00
< td >< select name = " link_rating " id = " link_rating " size = " 1 " >
< ? php
2019-04-16 19:56:22 +00:00
for ( $r = 0 ; $r <= 10 ; $r ++ ) {
echo '<option value="' . $r . '"' ;
if ( isset ( $link -> link_rating ) && $link -> link_rating == $r ) {
echo ' selected="selected"' ;
2019-03-12 09:27:46 +00:00
}
2019-04-16 19:56:22 +00:00
echo ( '>' . $r . '</option>' );
}
?>
</ select >& nbsp ; < ? php _e ( '(Leave at 0 for no rating.)' ); ?>
2019-03-12 09:27:46 +00:00
</ td >
</ tr >
</ table >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
}
/**
* Display post thumbnail meta box .
*
* @ since 2.9 . 0
*
* @ param WP_Post $post A post object .
*/
function post_thumbnail_meta_box ( $post ) {
$thumbnail_id = get_post_meta ( $post -> ID , '_thumbnail_id' , true );
echo _wp_post_thumbnail_html ( $thumbnail_id , $post -> ID );
}
/**
* Display fields for ID3 data
*
* @ since 3.9 . 0
*
* @ param WP_Post $post A post object .
*/
function attachment_id3_data_meta_box ( $post ) {
$meta = array ();
if ( ! empty ( $post -> ID ) ) {
$meta = wp_get_attachment_metadata ( $post -> ID );
}
2019-04-16 19:56:22 +00:00
foreach ( wp_get_attachment_id3_keys ( $post , 'edit' ) as $key => $label ) :
$value = '' ;
if ( ! empty ( $meta [ $key ] ) ) {
$value = $meta [ $key ];
}
?>
2019-03-12 09:27:46 +00:00
< p >
2019-04-16 19:56:22 +00:00
< label for = " title " >< ? php echo $label ; ?> </label><br />
< input type = " text " name = " id3_<?php echo esc_attr( $key ); ?> " id = " id3_<?php echo esc_attr( $key ); ?> " class = " large-text " value = " <?php echo esc_attr( $value ); ?> " />
2019-03-12 09:27:46 +00:00
</ p >
2019-04-16 19:56:22 +00:00
< ? php
2019-03-12 09:27:46 +00:00
endforeach ;
}
/**
* Registers the default post meta boxes , and runs the `do_meta_boxes` actions .
*
* @ since 5.0 . 0
*
* @ param WP_Post $post The post object that these meta boxes are being generated for .
*/
function register_and_do_post_meta_boxes ( $post ) {
2019-04-16 19:56:22 +00:00
$post_type = $post -> post_type ;
2019-03-12 09:27:46 +00:00
$post_type_object = get_post_type_object ( $post_type );
$thumbnail_support = current_theme_supports ( 'post-thumbnails' , $post_type ) && post_type_supports ( $post_type , 'thumbnail' );
if ( ! $thumbnail_support && 'attachment' === $post_type && $post -> post_mime_type ) {
if ( wp_attachment_is ( 'audio' , $post ) ) {
$thumbnail_support = post_type_supports ( 'attachment:audio' , 'thumbnail' ) || current_theme_supports ( 'post-thumbnails' , 'attachment:audio' );
} elseif ( wp_attachment_is ( 'video' , $post ) ) {
$thumbnail_support = post_type_supports ( 'attachment:video' , 'thumbnail' ) || current_theme_supports ( 'post-thumbnails' , 'attachment:video' );
}
}
$publish_callback_args = array ( '__back_compat_meta_box' => true );
2019-04-16 19:56:22 +00:00
if ( post_type_supports ( $post_type , 'revisions' ) && 'auto-draft' != $post -> post_status ) {
2019-03-12 09:27:46 +00:00
$revisions = wp_get_post_revisions ( $post -> ID );
// We should aim to show the revisions meta box only when there are revisions.
if ( count ( $revisions ) > 1 ) {
reset ( $revisions ); // Reset pointer for key()
2019-04-16 19:56:22 +00:00
$publish_callback_args = array (
'revisions_count' => count ( $revisions ),
'revision_id' => key ( $revisions ),
'__back_compat_meta_box' => true ,
);
add_meta_box ( 'revisionsdiv' , __ ( 'Revisions' ), 'post_revisions_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
2019-03-12 09:27:46 +00:00
}
}
if ( 'attachment' == $post_type ) {
wp_enqueue_script ( 'image-edit' );
wp_enqueue_style ( 'imgareaselect' );
2019-04-16 19:56:22 +00:00
add_meta_box ( 'submitdiv' , __ ( 'Save' ), 'attachment_submit_meta_box' , null , 'side' , 'core' , array ( '__back_compat_meta_box' => true ) );
2019-03-12 09:27:46 +00:00
add_action ( 'edit_form_after_title' , 'edit_form_image_editor' );
if ( wp_attachment_is ( 'audio' , $post ) ) {
add_meta_box ( 'attachment-id3' , __ ( 'Metadata' ), 'attachment_id3_data_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
} else {
add_meta_box ( 'submitdiv' , __ ( 'Publish' ), 'post_submit_meta_box' , null , 'side' , 'core' , $publish_callback_args );
}
2019-04-16 19:56:22 +00:00
if ( current_theme_supports ( 'post-formats' ) && post_type_supports ( $post_type , 'post-formats' ) ) {
2019-03-12 09:27:46 +00:00
add_meta_box ( 'formatdiv' , _x ( 'Format' , 'post format' ), 'post_format_meta_box' , null , 'side' , 'core' , array ( '__back_compat_meta_box' => true ) );
2019-04-16 19:56:22 +00:00
}
2019-03-12 09:27:46 +00:00
// all taxonomies
foreach ( get_object_taxonomies ( $post ) as $tax_name ) {
$taxonomy = get_taxonomy ( $tax_name );
2019-04-16 19:56:22 +00:00
if ( ! $taxonomy -> show_ui || false === $taxonomy -> meta_box_cb ) {
2019-03-12 09:27:46 +00:00
continue ;
2019-04-16 19:56:22 +00:00
}
2019-03-12 09:27:46 +00:00
$label = $taxonomy -> labels -> name ;
2019-04-16 19:56:22 +00:00
if ( ! is_taxonomy_hierarchical ( $tax_name ) ) {
2019-03-12 09:27:46 +00:00
$tax_meta_box_id = 'tagsdiv-' . $tax_name ;
2019-04-16 19:56:22 +00:00
} else {
2019-03-12 09:27:46 +00:00
$tax_meta_box_id = $tax_name . 'div' ;
2019-04-16 19:56:22 +00:00
}
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
add_meta_box (
$tax_meta_box_id ,
$label ,
$taxonomy -> meta_box_cb ,
null ,
'side' ,
'core' ,
array (
'taxonomy' => $tax_name ,
'__back_compat_meta_box' => true ,
)
);
2019-03-12 09:27:46 +00:00
}
if ( post_type_supports ( $post_type , 'page-attributes' ) || count ( get_page_templates ( $post ) ) > 0 ) {
add_meta_box ( 'pageparentdiv' , $post_type_object -> labels -> attributes , 'page_attributes_meta_box' , null , 'side' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
2019-04-16 19:56:22 +00:00
if ( $thumbnail_support && current_user_can ( 'upload_files' ) ) {
add_meta_box ( 'postimagediv' , esc_html ( $post_type_object -> labels -> featured_image ), 'post_thumbnail_meta_box' , null , 'side' , 'low' , array ( '__back_compat_meta_box' => true ) );
}
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
if ( post_type_supports ( $post_type , 'excerpt' ) ) {
add_meta_box ( 'postexcerpt' , __ ( 'Excerpt' ), 'post_excerpt_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
if ( post_type_supports ( $post_type , 'trackbacks' ) ) {
add_meta_box ( 'trackbacksdiv' , __ ( 'Send Trackbacks' ), 'post_trackback_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
2019-03-12 09:27:46 +00:00
2019-04-16 19:56:22 +00:00
if ( post_type_supports ( $post_type , 'custom-fields' ) ) {
add_meta_box (
'postcustom' ,
__ ( 'Custom Fields' ),
'post_custom_meta_box' ,
null ,
'normal' ,
'core' ,
array (
'__back_compat_meta_box' => ! ( bool ) get_user_meta ( get_current_user_id (), 'enable_custom_fields' , true ),
'__block_editor_compatible_meta_box' => true ,
)
2019-03-12 09:27:46 +00:00
);
}
/**
* Fires in the middle of built - in meta box registration .
*
* @ since 2.1 . 0
* @ deprecated 3.7 . 0 Use 'add_meta_boxes' instead .
*
* @ param WP_Post $post Post object .
*/
do_action ( 'dbx_post_advanced' , $post );
// Allow the Discussion meta box to show up if the post type supports comments,
// or if comments or pings are open.
if ( comments_open ( $post ) || pings_open ( $post ) || post_type_supports ( $post_type , 'comments' ) ) {
add_meta_box ( 'commentstatusdiv' , __ ( 'Discussion' ), 'post_comment_status_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
$stati = get_post_stati ( array ( 'public' => true ) );
if ( empty ( $stati ) ) {
$stati = array ( 'publish' );
}
$stati [] = 'private' ;
if ( in_array ( get_post_status ( $post ), $stati ) ) {
// If the post type support comments, or the post has comments, allow the
// Comments meta box.
if ( comments_open ( $post ) || pings_open ( $post ) || $post -> comment_count > 0 || post_type_supports ( $post_type , 'comments' ) ) {
add_meta_box ( 'commentsdiv' , __ ( 'Comments' ), 'post_comment_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
}
2019-04-16 19:56:22 +00:00
if ( ! ( 'pending' == get_post_status ( $post ) && ! current_user_can ( $post_type_object -> cap -> publish_posts ) ) ) {
add_meta_box ( 'slugdiv' , __ ( 'Slug' ), 'post_slug_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
2019-03-12 09:27:46 +00:00
if ( post_type_supports ( $post_type , 'author' ) && current_user_can ( $post_type_object -> cap -> edit_others_posts ) ) {
add_meta_box ( 'authordiv' , __ ( 'Author' ), 'post_author_meta_box' , null , 'normal' , 'core' , array ( '__back_compat_meta_box' => true ) );
}
/**
* Fires after all built - in meta boxes have been added .
*
* @ since 3.0 . 0
*
* @ param string $post_type Post type .
* @ param WP_Post $post Post object .
*/
do_action ( 'add_meta_boxes' , $post_type , $post );
/**
* Fires after all built - in meta boxes have been added , contextually for the given post type .
*
* The dynamic portion of the hook , `$post_type` , refers to the post type of the post .
*
* @ since 3.0 . 0
*
* @ param WP_Post $post Post object .
*/
do_action ( " add_meta_boxes_ { $post_type } " , $post );
/**
* Fires after meta boxes have been added .
*
* Fires once for each of the default meta box contexts : normal , advanced , and side .
*
* @ since 3.0 . 0
*
* @ param string $post_type Post type of the post .
* @ param string $context string Meta box context .
* @ param WP_Post $post Post object .
*/
do_action ( 'do_meta_boxes' , $post_type , 'normal' , $post );
/** This action is documented in wp-admin/includes/meta-boxes.php */
do_action ( 'do_meta_boxes' , $post_type , 'advanced' , $post );
/** This action is documented in wp-admin/includes/meta-boxes.php */
do_action ( 'do_meta_boxes' , $post_type , 'side' , $post );
}