2008-05-08 19:25:07 +02:00
< ? php
2008-08-16 09:27:34 +02:00
/**
* Post advanced form for inclusion in the administration panels .
*
* @ package WordPress
* @ subpackage Administration
*/
2008-05-08 19:25:07 +02:00
2008-08-16 09:27:34 +02:00
/**
* Post ID global
* @ name $post_ID
* @ var int
*/
2008-08-08 19:05:10 +02:00
if ( ! isset ( $post_ID ) )
$post_ID = 0 ;
2008-08-25 23:50:11 +02:00
else
$post_ID = ( int ) $post_ID ;
2008-08-08 19:05:10 +02:00
2008-05-08 19:25:07 +02:00
$action = isset ( $action ) ? $action : '' ;
2007-05-25 11:41:04 +02:00
if ( isset ( $_GET [ 'message' ]) )
2008-03-21 04:31:12 +01:00
$_GET [ 'message' ] = absint ( $_GET [ 'message' ] );
2008-08-08 19:05:10 +02:00
$messages [ 1 ] = sprintf ( __ ( 'Post updated. Continue editing below or <a href="%s">go back</a>.' ), attribute_escape ( stripslashes ( ( isset ( $_GET [ '_wp_original_http_referer' ] ) ? $_GET [ '_wp_original_http_referer' ] : '' ) ) ) );
2008-03-21 04:31:12 +01:00
$messages [ 2 ] = __ ( 'Custom field updated.' );
2004-04-28 06:49:16 +02:00
$messages [ 3 ] = __ ( 'Custom field deleted.' );
2008-03-26 19:55:24 +01:00
$messages [ 4 ] = __ ( 'Post updated.' );
2008-08-20 23:42:31 +02:00
$messages [ 6 ] = __ ( 'Post published.' );
$messages [ 7 ] = __ ( 'Post saved.' );
2008-07-30 14:32:04 +02:00
if ( isset ( $_GET [ 'revision' ]) )
$messages [ 5 ] = sprintf ( __ ( 'Post restored to revision from %s' ), wp_post_revision_title ( ( int ) $_GET [ 'revision' ], false ) );
2008-05-08 19:25:07 +02:00
$notice = false ;
$notices [ 1 ] = __ ( 'There is an autosave of this post that is more recent than the version below. <a href="%s">View the autosave</a>.' );
2008-08-08 19:05:10 +02:00
if ( 0 == $post_ID ) {
2008-05-08 19:25:07 +02:00
$form_action = 'post' ;
$temp_ID = - 1 * time (); // don't change this formula without looking at wp_write_post()
$form_extra = " <input type='hidden' id='post_ID' name='temp_ID' value=' $temp_ID ' /> " ;
$autosave = false ;
} else {
$form_action = 'editpost' ;
$form_extra = " <input type='hidden' id='post_ID' name='post_ID' value=' $post_ID ' /> " ;
2008-08-25 23:50:11 +02:00
$autosave = wp_get_post_autosave ( $post_ID );
2008-06-24 00:25:27 +02:00
// Detect if there exists an autosave newer than the post and if that autosave is different than the post
if ( $autosave && mysql2date ( 'U' , $autosave -> post_modified_gmt ) > mysql2date ( 'U' , $post -> post_modified_gmt ) ) {
foreach ( _wp_post_revision_fields () as $autosave_field => $_autosave_field ) {
2008-10-23 22:03:16 +02:00
if ( normalize_whitespace ( $autosave -> $autosave_field ) != normalize_whitespace ( $post -> $autosave_field ) ) {
2008-06-24 00:25:27 +02:00
$notice = sprintf ( $notices [ 1 ], get_edit_post_link ( $autosave -> ID ) );
break ;
}
}
unset ( $autosave_field , $_autosave_field );
}
2008-05-08 19:25:07 +02:00
}
2008-08-20 23:42:31 +02:00
// All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action).
2008-10-10 20:21:16 +02:00
/**
* Display post submit form fields .
*
* @ since 2.7 . 0
*
* @ param object $post
*/
2008-08-20 23:42:31 +02:00
function post_submit_meta_box ( $post ) {
global $action ;
2008-09-14 14:58:00 +02:00
$can_publish = current_user_can ( 'publish_posts' );
2003-12-28 12:44:05 +01:00
?>
2008-02-18 20:38:01 +01:00
< div class = " submitbox " id = " submitpost " >
2008-01-14 02:14:57 +01:00
2008-10-21 06:36:35 +02:00
< div id = " minor-publishing " >
2008-10-29 07:00:22 +01:00
< ? php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
< div style = " display:none; " >
< input type = " submit " name = " save " value = " <?php echo attribute_escape( __('Save') ); ?> " />
</ div >
2008-11-03 08:06:36 +01:00
< div id = " minor-publishing-actions " >
< div id = " preview-action " >
< noscript >
< ? php if ( 'publish' == $post -> post_status ) { ?>
< a class = " preview button " href = " <?php echo clean_url(get_permalink( $post->ID )); ?> " target = " _blank " tabindex = " 4 " >< ? php _e ( 'View Post' ); ?> </a>
< ? php } else { ?>
< a class = " preview button " href = " <?php echo clean_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink( $post->ID )))); ?> " target = " _blank " tabindex = " 4 " >< ? php _e ( 'Preview' ); ?> </a>
2008-10-21 06:36:35 +02:00
< ? php } ?>
2008-11-03 08:06:36 +01:00
</ noscript >
< a class = " preview button hide-if-no-js " href = " # " id = " post-preview " tabindex = " 4 " >< ? php _e ( 'Preview' ); ?> </a>
< input type = " hidden " name = " wp-preview " id = " wp-preview " value = " " />
2008-10-21 06:36:35 +02:00
</ div >
2008-11-03 08:06:36 +01:00
< div id = " save-action " >
< ? php if ( 'publish' != $post -> post_status && 'private' != $post -> post_status && 'future' != $post -> post_status && 'pending' != $post -> post_status ) { ?>
< input type = " submit " name = " save " id = " save-post " value = " <?php echo attribute_escape( __('Save Draft') ); ?> " tabindex = " 4 " class = " button button-highlighted " />
< ? php } elseif ( 'pending' == $post -> post_status && $can_publish ) { ?>
< input type = " submit " name = " save " id = " save-post " value = " <?php echo attribute_escape( __('Save as Pending') ); ?> " tabindex = " 4 " class = " button button-highlighted " />
< ? php } ?>
2008-10-30 04:50:23 +01:00
</ div >
2008-11-03 08:06:36 +01:00
< div class = " clear " ></ div >
</ div >< ? php // /minor-publishing-actions ?>
< div id = " misc-publishing-actions " >
< ? php if ( false ) { // Stub for 2.8 ?>
< div class = " misc-pub-section " id = " visibility " >
< ? php _e ( 'Visibility:' ); ?> <b><?php _e('Public'); // TODO: dropdown ?></b>
2008-10-21 06:36:35 +02:00
</ div >
2008-11-03 08:06:36 +01:00
< ? php } ?>
2008-10-21 06:36:35 +02:00
2008-11-03 08:06:36 +01:00
< div class = " misc-pub-section<?php if ( ! $can_publish ) { echo ' misc-pub-section-last'; } ?> " >< label for = " post_status " >< ? php _e ( 'Status:' ) ?> </label>
2008-10-29 07:00:22 +01:00
< b >< span id = " post-status-display " >
2008-09-12 15:12:28 +02:00
< ? php
switch ( $post -> post_status ) {
case 'publish' :
case 'private' :
_e ( 'Published' );
break ;
case 'future' :
_e ( 'Scheduled' );
break ;
case 'pending' :
_e ( 'Pending Review' );
break ;
case 'draft' :
2008-10-21 06:36:35 +02:00
_e ( 'Draft' );
2008-09-12 15:12:28 +02:00
break ;
}
?>
2008-10-29 07:00:22 +01:00
</ span ></ b >
2008-10-29 20:22:56 +01:00
< ? php if ( 'publish' == $post -> post_status || 'private' == $post -> post_status || $can_publish ) { ?>
2008-09-14 14:58:00 +02:00
< a href = " #post_status " class = " edit-post-status hide-if-no-js " tabindex = '4' >< ? php _e ( 'Edit' ) ?> </a>
2008-09-12 15:12:28 +02:00
2008-09-14 14:58:00 +02:00
< div id = " post-status-select " class = " hide-if-js " >
< input type = " hidden " name = " hidden_post_status " id = " hidden_post_status " value = " <?php echo $post->post_status ; ?> " />
2008-05-04 12:37:06 +02:00
< select name = 'post_status' id = 'post_status' tabindex = '4' >
2008-10-31 06:38:31 +01:00
< ? php if ( $post -> post_status == 'publish' ) : ?>
2008-03-01 07:26:13 +01:00
< option < ? php selected ( $post -> post_status , 'publish' ); selected ( $post -> post_status , 'private' ); ?> value='publish'><?php _e('Published') ?></option>
2008-10-31 06:38:31 +01:00
< ? php elseif ( 'future' == $post -> post_status ) : ?>
2008-03-20 05:19:58 +01:00
< option < ? php selected ( $post -> post_status , 'future' ); ?> value='future'><?php _e('Scheduled') ?></option>
< ? php endif ; ?>
2008-01-16 06:52:38 +01:00
< option < ? php selected ( $post -> post_status , 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
2008-10-21 06:36:35 +02:00
< option < ? php selected ( $post -> post_status , 'draft' ); ?> value='draft'><?php _e('Draft') ?></option>
2008-01-16 06:52:38 +01:00
</ select >
2008-11-03 08:06:36 +01: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 " >< ? php _e ( 'Cancel' ); ?> </a>
2008-09-14 14:58:00 +02:00
</ div >
< ? php } ?>
2008-11-03 08:06:36 +01:00
</ div >< ? php // /misc-pub-section ?>
2008-01-14 02:14:57 +01:00
2008-10-29 07:00:22 +01:00
2008-11-03 08:06:36 +01:00
< ? php if ( $can_publish && current_user_can ( 'edit_others_posts' ) ) { ?>
< div class = " misc-pub-section " id = " sticky-checkbox " >
< input id = " sticky " name = " sticky " type = " checkbox " value = " sticky " < ? php checked ( is_sticky ( $post -> ID ), true ); ?> tabindex="4" /> <label for="sticky" class="selectit"><?php _e('Stick this post to the front page') ?></label>
</ div >< ? php // /misc-pub-section ?>
2008-10-29 07:00:22 +01:00
< ? php } ?>
2008-09-12 15:12:28 +02:00
2008-10-31 23:47:07 +01:00
2008-11-03 08:06:36 +01:00
< ? php
$datef = _c ( 'M j, Y @ G:i|Publish box date format' );
if ( 0 != $post -> ID ) {
if ( 'future' == $post -> post_status ) { // scheduled for publishing at a future date
$stamp = __ ( 'Scheduled for: <b>%1$s</b>' );
} else if ( 'publish' == $post -> post_status ) { // already published
$stamp = __ ( 'Published on: <b>%1$s</b>' );
} else if ( '0000-00-00 00:00:00' == $post -> post_date_gmt ) { // draft, 1 or more saves, no date specified
$stamp = __ ( 'Publish <b>immediately</b>' );
} else if ( time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
$stamp = __ ( 'Schedule for: <b>%1$s</b>' );
} else { // draft, 1 or more saves, date specified
$stamp = __ ( 'Publish on: <b>%1$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' ) ) );
}
?>
< ? php if ( $can_publish ) : // Contributors don't get to choose the date of publish ?>
< div class = " misc-pub-section curtime misc-pub-section-last " >
< span id = " timestamp " >
< ? php printf ( $stamp , $date ); ?> </span>
& nbsp ; < a href = " #edit_timestamp " class = " edit-timestamp hide-if-no-js " tabindex = '4' >< ? php _e ( 'Edit' ) ?> </a>
< div id = " timestampdiv " class = " hide-if-js " >< ? php touch_time (( $action == 'edit' ), 1 , 4 ); ?> </div>
</ div >< ? php // /misc-pub-section ?>
< ? php endif ; ?>
2008-10-31 23:47:07 +01:00
2008-10-21 06:36:35 +02:00
</ div >
< div class = " clear " ></ div >
</ div >
< div id = " major-publishing-actions " >
< ? php do_action ( 'post_submitbox_start' ); ?>
< div id = " delete-action " >
< ? php
if ( ( 'edit' == $action ) && current_user_can ( 'delete_post' , $post -> ID ) ) { ?>
< a class = " submitdelete deletion " href = " <?php echo wp_nonce_url( " post . php ? action = delete & amp ; post = $post -> ID " , 'delete-post_' . $post->ID ); ?> " onclick = " if ( confirm('<?php echo js_escape(sprintf( ('draft' == $post->post_status ) ? __( " You are about to delete this draft '%s' \n 'Cancel' to stop , 'OK' to delete . " ) : __( " You are about to delete this post '%s' \n 'Cancel' to stop , 'OK' to delete . " ), $post->post_title )); ?>') ) { return true;}return false; " >< ? php _e ( 'Delete' ); ?> </a>
< ? php } ?>
</ div >
2008-09-12 15:12:28 +02:00
2008-10-21 06:36:35 +02:00
< div id = " publishing-action " >
2008-09-12 15:12:28 +02:00
< ? php
2008-09-14 14:58:00 +02:00
if ( ! in_array ( $post -> post_status , array ( 'publish' , 'future' ) ) || 0 == $post -> ID ) { ?>
2005-07-14 00:26:26 +02:00
< ? php if ( current_user_can ( 'publish_posts' ) ) : ?>
2008-11-04 04:22:24 +01:00
< ? php if ( ! empty ( $post -> post_date_gmt ) && time () < strtotime ( $post -> post_date_gmt . ' +0000' ) ) : ?>
2008-10-29 20:22:56 +01:00
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Schedule') ?> " />
< ? php else : ?>
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Publish') ?> " />
< ? php endif ; ?>
2007-06-14 18:24:28 +02:00
< ? php else : ?>
2008-10-27 07:07:59 +01:00
< input name = " publish " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Submit for Review') ?> " />
2004-09-14 14:41:09 +02:00
< ? php endif ; ?>
2008-10-29 07:00:22 +01:00
< ? php } else { ?>
< input name = " save " type = " submit " class = " button-primary " id = " publish " tabindex = " 5 " accesskey = " p " value = " <?php _e('Update Post') ?> " />
2008-09-12 15:12:28 +02:00
< ? php } ?>
2008-10-21 06:36:35 +02:00
</ div >
2008-09-14 14:58:00 +02:00
< div class = " clear " ></ div >
2008-01-14 02:14:57 +01:00
</ div >
2008-10-29 07:00:22 +01:00
</ div >
2008-09-14 14:58:00 +02:00
2008-08-20 23:42:31 +02:00
< ? php
}
add_meta_box ( 'submitdiv' , __ ( 'Publish' ), 'post_submit_meta_box' , 'post' , 'side' , 'core' );
2008-02-22 04:45:19 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post tags form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-08-20 23:42:31 +02:00
function post_tags_meta_box ( $post ) {
?>
< p id = " jaxtag " >< label class = " hidden " for = " newtag " >< ? php _e ( 'Tags' ); ?> </label><input type="text" name="tags_input" class="tags-input" id="tags-input" size="40" tabindex="3" value="<?php echo get_tags_to_edit( $post->ID ); ?>" /></p>
< div id = " tagchecklist " ></ div >
< p >< a href = '#' >< ? php _e ( 'Choose from tags' ); ?> </a></p>
< ? php
}
add_meta_box ( 'tagsdiv' , __ ( 'Tags' ), 'post_tags_meta_box' , 'post' , 'side' , 'core' );
2008-01-14 02:14:57 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post categories form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_categories_meta_box ( $post ) {
?>
2008-01-10 10:39:35 +01:00
< ul id = " category-tabs " >
2008-04-17 21:32:38 +02:00
< li class = " ui-tabs-selected " >< a href = " #categories-all " tabindex = " 3 " >< ? php _e ( 'All Categories' ); ?> </a></li>
2008-08-21 08:42:19 +02:00
< li class = " hide-if-no-js " >< a href = " #categories-pop " tabindex = " 3 " >< ? php _e ( 'Most Used' ); ?> </a></li>
2008-01-10 10:39:35 +01:00
</ ul >
2008-04-14 21:31:20 +02:00
< div id = " categories-pop " class = " ui-tabs-panel " style = " display: none; " >
< ul id = " categorychecklist-pop " class = " categorychecklist form-no-clear " >
2008-04-17 21:32:38 +02:00
< ? php $popular_ids = wp_popular_terms_checklist ( 'category' ); ?>
</ ul >
</ div >
< div id = " categories-all " class = " ui-tabs-panel " >
< ul id = " categorychecklist " class = " list:category categorychecklist form-no-clear " >
2008-05-19 23:35:18 +02:00
< ? php wp_category_checklist ( $post -> ID , false , false , $popular_ids ) ?>
2008-01-10 10:39:35 +01:00
</ ul >
</ div >
2008-01-03 09:03:29 +01:00
2008-08-20 23:42:31 +02:00
< div id = " category-adder " class = " wp-hidden-children " >
< h4 >< a id = " category-add-toggle " href = " #category-add " class = " hide-if-no-js " tabindex = " 3 " >< ? php _e ( '+ Add New Category' ); ?> </a></h4>
< p id = " category-add " class = " wp-hidden-child " >
< label class = " hidden " for = " newcat " >< ? php _e ( 'Add New Category' ); ?> </label><input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" aria-required="true"/>
< label class = " hidden " for = " newcat_parent " >< ? php _e ( 'Parent category' ); ?> :</label><?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
< input type = " button " id = " category-add-sumbit " class = " add:categorychecklist:category-add button " value = " <?php _e( 'Add' ); ?> " tabindex = " 3 " />
< ? php wp_nonce_field ( 'add-category' , '_ajax_nonce' , false ); ?>
< span id = " category-ajax-response " ></ span >
</ p >
</ div >
2008-01-03 02:34:11 +01:00
2008-05-14 10:22:01 +02:00
< ? php
2008-08-20 23:42:31 +02:00
}
add_meta_box ( 'categorydiv' , __ ( 'Categories' ), 'post_categories_meta_box' , 'post' , 'side' , 'core' );
2008-10-31 22:48:00 +01:00
/**
* Display post password form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
function post_password_meta_box ( $post ) {
?>
< p >
< label for = " post_status_private " class = " selectit " >< input id = " post_status_private " name = " post_status " type = " checkbox " value = " private " < ? php checked ( $post -> post_status , 'private' ); ?> tabindex="4" /> <?php _e('Keep this post private') ?></label>
</ p >
< h4 >< ? php _e ( 'Post Password' ); ?> </h4>
< p >< label class = " hidden " for = " post_password " >< ? php _e ( 'Password Protect This Post' ) ?> </label><input name="post_password" type="text" size="25" id="post_password" value="<?php the_post_password(); ?>" /></p>
< p >< ? php _e ( 'Setting a password will require people who visit your blog to enter the above password to view this post and its comments.' ); ?> </p>
< ? php
}
add_meta_box ( 'passworddiv' , __ ( 'Privacy Options' ), 'post_password_meta_box' , 'post' , 'side' , 'core' );
2008-10-10 20:21:16 +02:00
/**
* Display post excerpt form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_excerpt_meta_box ( $post ) {
?>
< label class = " hidden " for = " excerpt " >< ? php _e ( 'Excerpt' ) ?> </label><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea>
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Excerpts are optional hand-crafted summaries of your content. You can <a href="http://codex.wordpress.org/Template_Tags/the_excerpt" target="_blank">use them in your template</a>' ); ?> </p>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'postexcerpt' , __ ( 'Excerpt' ), 'post_excerpt_meta_box' , 'post' , 'normal' , 'core' );
2004-11-18 20:40:36 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display trackback links form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_trackback_meta_box ( $post ) {
2008-09-14 14:58:00 +02:00
$form_trackback = '<input type="text" name="trackback_url" id="trackback_url" tabindex="7" value="' . attribute_escape ( str_replace ( " \n " , ' ' , $post -> to_ping ) ) . '" />' ;
2008-05-21 01:46:31 +02: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> " . wp_specialchars ( $pinged_url ) . " </li> " ;
}
$pings .= '</ul>' ;
}
2008-05-14 10:22:01 +02:00
?>
2008-08-20 23:42:31 +02:00
< p class = " meta-options " >
< label for = " ping_status " class = " selectit " >< input name = " ping_status " type = " checkbox " id = " ping_status " value = " open " < ? php checked ( $post -> ping_status , 'open' ); ?> /> <?php _e('Allow <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">trackbacks and pingbacks</a> on this post') ?></label>
</ p >
2008-09-14 14:58:00 +02:00
< p >< label for = " trackback_url " >< ? php _e ( 'Send trackbacks to:' ); ?> </label> <?php echo $form_trackback; ?><br /> (<?php _e('Separate multiple URLs with spaces'); ?>)</p>
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress blogs they’ll be notified automatically using <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">pingbacks</a>, no other action necessary.' ); ?> </p>
2006-11-19 08:56:05 +01:00
< ? php
2005-12-23 21:43:30 +01:00
if ( ! empty ( $pings ) )
2005-06-14 09:31:36 +02:00
echo $pings ;
2008-05-14 10:22:01 +02:00
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'trackbacksdiv' , __ ( 'Trackbacks and Pings' ), 'post_trackback_meta_box' , 'post' , 'normal' , 'core' );
2004-11-18 20:40:36 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display custom fields for the post form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_custom_meta_box ( $post ) {
?>
2008-01-03 09:03:29 +01:00
< div id = " postcustomstuff " >
2006-03-29 03:51:55 +02:00
< table cellpadding = " 3 " >
2004-04-28 04:23:46 +02:00
< ? php
2008-05-14 10:22:01 +02:00
$metadata = has_meta ( $post -> ID );
2006-11-19 08:56:05 +01:00
list_meta ( $metadata );
2004-04-28 04:23:46 +02:00
?>
2006-03-29 03:51:55 +02:00
</ table >
2004-04-28 04:23:46 +02:00
< ? php
meta_form ();
?>
2006-03-29 03:51:55 +02:00
< div id = " ajax-response " ></ div >
2003-12-28 12:44:05 +01:00
</ div >
2008-03-11 08:23:07 +01:00
< p >< ? php _e ( 'Custom fields can be used to add extra metadata to a post that you can <a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">use in your theme</a>.' ); ?> </p>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'postcustom' , __ ( 'Custom Fields' ), 'post_custom_meta_box' , 'post' , 'normal' , 'core' );
2005-06-14 09:31:36 +02:00
2008-05-14 10:22:01 +02:00
do_action ( 'dbx_post_advanced' );
2006-01-09 23:44:42 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display comment status for post form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_comment_status_meta_box ( $post ) {
2008-08-20 23:42:31 +02:00
global $wpdb , $post_ID ;
2008-05-14 10:22:01 +02:00
?>
2008-01-03 09:03:29 +01:00
< input name = " advanced_view " type = " hidden " value = " 1 " />
2008-08-20 23:42:31 +02:00
< p class = " meta-options " >
2008-08-21 04:25:14 +02: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 on this post') ?></label>
2008-08-20 23:42:31 +02:00
</ p >
2008-05-14 10:22:01 +02:00
< ? php
2008-10-18 19:00:20 +02:00
$total = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT count(1) FROM $wpdb->comments WHERE comment_post_ID = '%d' AND ( comment_approved = '0' OR comment_approved = '1') " , $post_ID ));
2008-08-20 23:42:31 +02:00
2008-10-18 19:00:20 +02:00
if ( ! $post_ID || $post_ID < 0 || 1 > $total )
2008-08-20 23:42:31 +02:00
return ;
2008-10-17 11:44:22 +02:00
wp_nonce_field ( 'get-comments' , 'add_comment_nonce' , false );
2008-08-20 23:42:31 +02:00
?>
2008-10-30 16:50:21 +01:00
< table class = " widefat comments-box " style = " display:none; " >
< thead >
< tr >
< th scope = " col " >< ? php _e ( 'Comments' ) ?> </th>
< th scope = " col " >< ? php _e ( 'Author' ) ?> </th>
< th scope = " col " >< ? php _e ( 'Submitted' ) ?> </th>
</ tr >
</ thead >
< tbody id = " the-comment-list " class = " list:comment " >
</ tbody >
</ table >
2008-10-18 19:00:20 +02:00
< p class = " hide-if-no-js " >< a href = " #commentstatusdiv " id = " show-comments " onclick = " commentsBox.get(<?php echo $total ; ?>);return false; " >< ? php _e ( 'Show comments' ); ?> </a> <img class="waiting" style="display:none;" src="images/loading.gif" alt="" /></p>
2008-08-20 23:42:31 +02:00
< ? php
2008-10-18 19:00:20 +02:00
$hidden = ( array ) get_user_option ( " meta-box-hidden_post " );
if ( ! in_array ( 'commentstatusdiv' , $hidden ) ) { ?>
< script type = " text/javascript " > commentsBox . get ( < ? php echo $total ; ?> , 10);</script>
< ? php
}
2008-05-14 10:22:01 +02:00
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'commentstatusdiv' , __ ( 'Comments on this Post' ), 'post_comment_status_meta_box' , 'post' , 'normal' , 'core' );
2008-01-03 09:03:29 +01:00
2008-10-10 20:21:16 +02:00
/**
* Display post slug form fields .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_slug_meta_box ( $post ) {
?>
2008-05-04 12:37:06 +02:00
< label class = " hidden " for = " post_name " >< ? php _e ( 'Post Slug' ) ?> </label><input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" />
2008-01-03 09:03:29 +01:00
< ? php
2008-05-14 10:22:01 +02:00
}
2008-10-02 06:10:54 +02:00
if ( ! ( 'pending' == $post -> post_status && ! current_user_can ( 'publish_posts' ) ) )
add_meta_box ( 'slugdiv' , __ ( 'Post Slug' ), 'post_slug_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
2008-01-03 09:03:29 +01:00
$authors = get_editable_user_ids ( $current_user -> id ); // TODO: ROLE SYSTEM
if ( $post -> post_author && ! in_array ( $post -> post_author , $authors ) )
$authors [] = $post -> post_author ;
if ( $authors && count ( $authors ) > 1 ) :
2008-10-10 20:21:16 +02:00
/**
* Display form field with list of authors .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_author_meta_box ( $post ) {
2008-05-18 22:08:18 +02:00
global $current_user , $user_ID ;
$authors = get_editable_user_ids ( $current_user -> id ); // TODO: ROLE SYSTEM
if ( $post -> post_author && ! in_array ( $post -> post_author , $authors ) )
$authors [] = $post -> post_author ;
2008-01-03 09:03:29 +01:00
?>
2008-05-18 22:08:18 +02:00
< label class = " hidden " for = " post_author_override " >< ? php _e ( 'Post Author' ); ?> </label><?php wp_dropdown_users( array('include' => $authors, 'name' => 'post_author_override', 'selected' => empty($post->ID) ? $user_ID : $post->post_author) ); ?>
2008-05-14 10:22:01 +02:00
< ? php
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'authordiv' , __ ( 'Post Author' ), 'post_author_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
endif ;
2008-01-03 09:03:29 +01:00
2008-08-08 19:05:10 +02:00
if ( 0 < $post_ID && wp_get_post_revisions ( $post_ID ) ) :
2008-10-10 20:21:16 +02:00
/**
* Display list of post revisions .
*
* @ since 2.6 . 0
*
* @ param object $post
*/
2008-05-14 10:22:01 +02:00
function post_revisions_meta_box ( $post ) {
wp_list_post_revisions ();
}
2008-08-20 23:42:31 +02:00
add_meta_box ( 'revisionsdiv' , __ ( 'Post Revisions' ), 'post_revisions_meta_box' , 'post' , 'normal' , 'core' );
2008-05-14 10:22:01 +02:00
endif ;
2008-04-19 01:38:21 +02:00
2008-08-20 23:42:31 +02:00
?>
2008-10-27 02:22:24 +01:00
< ? php screen_options ( 'post' , 1 ) ?>
2008-09-28 06:11:27 +02:00
2008-08-20 23:42:31 +02:00
< ? php if ( $notice ) : ?>
< div id = " notice " class = " error " >< p >< ? php echo $notice ?> </p></div>
< ? php endif ; ?>
< ? php if ( isset ( $_GET [ 'message' ])) : ?>
< div id = " message " class = " updated fade " >< p >< ? php echo $messages [ $_GET [ 'message' ]]; ?> </p></div>
< ? php endif ; ?>
< ? php if ( ( isset ( $mode ) && 'bookmarklet' == $mode ) || isset ( $_GET [ 'popupurl' ]) ) : ?>
< input type = " hidden " name = " mode " value = " bookmarklet " />
< ? php endif ; ?>
< div class = " wrap " >
2008-10-17 22:06:22 +02:00
< h2 >< ? php echo wp_specialchars ( $title ); ?> </h2>
2008-09-28 06:11:27 +02:00
< form name = " post " action = " post.php " method = " post " id = " post " >
2008-08-20 23:42:31 +02:00
< ? php
if ( 0 == $post_ID )
wp_nonce_field ( 'add-post' );
else
wp_nonce_field ( 'update-post_' . $post_ID );
?>
< input type = " hidden " id = " user-id " name = " user_ID " value = " <?php echo (int) $user_ID ?> " />
< input type = " hidden " id = " hiddenaction " name = " action " value = " <?php echo $form_action ?> " />
< input type = " hidden " id = " originalaction " name = " originalaction " value = " <?php echo $form_action ?> " />
< input type = " hidden " id = " post_author " name = " post_author " value = " <?php echo attribute_escape( $post->post_author ); ?> " />
< input type = " hidden " id = " post_type " name = " post_type " value = " <?php echo $post->post_type ?> " />
< input type = " hidden " id = " original_post_status " name = " original_post_status " value = " <?php echo $post->post_status ?> " />
< input name = " referredby " type = " hidden " id = " referredby " value = " <?php echo clean_url(stripslashes(wp_get_referer())); ?> " />
< ? php if ( 'draft' != $post -> post_status ) wp_original_referer_field ( true , 'previous' ); ?>
< ? php echo $form_extra ?>
2008-10-09 01:32:34 +02:00
< div id = " poststuff " class = " metabox-holder " >
2008-08-20 23:42:31 +02:00
< div id = " side-info-column " class = " inner-sidebar " >
< ? php do_action ( 'submitpost_box' ); ?>
< ? php $side_meta_boxes = do_meta_boxes ( 'post' , 'side' , $post ); ?>
</ div >
< div id = " post-body " class = " <?php echo $side_meta_boxes ? 'has-sidebar' : ''; ?> " >
< div id = " post-body-content " class = " has-sidebar-content " >
< div id = " titlediv " >
< div id = " titlewrap " >
< input type = " text " name = " post_title " size = " 30 " tabindex = " 1 " value = " <?php echo attribute_escape( $post->post_title ); ?> " id = " title " autocomplete = " off " />
</ div >
< div class = " inside " >
< ? php $sample_permalink_html = get_sample_permalink_html ( $post -> ID ); ?>
2008-10-02 06:10:54 +02:00
< ? php if ( ! ( 'pending' == $post -> post_status && ! current_user_can ( 'publish_posts' ) ) ) { ?>
2008-08-20 23:42:31 +02:00
< div id = " edit-slug-box " >
< ? php if ( ! empty ( $post -> ID ) && ! empty ( $sample_permalink_html ) ) :
echo $sample_permalink_html ;
endif ; ?>
</ div >
2008-10-02 06:10:54 +02:00
< ? php } ?>
2008-08-20 23:42:31 +02:00
</ div >
</ div >
< div id = " <?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?> " class = " postarea " >
2008-10-28 11:59:26 +01:00
<!--< div id = " add-media-button " >< a id = " add-media-link " href = " <?php echo clean_url( admin_url( 'media-upload.php?post_id=' . ( $post_ID ? $post_ID : $temp_ID ) . '&type=image&TB_iframe=true' ) ); ?> " class = " thickbox button " >< ? php _e ( 'Insert Media' ); ?> </a></div>-->
2008-08-20 23:42:31 +02:00
< ? php the_editor ( $post -> post_content ); ?>
< div id = " post-status-info " >
< span id = " wp-word-count " class = " alignleft " ></ span >
< span class = " alignright " >
< span id = " autosave " >& nbsp ; </ span >
< ? php
if ( $post_ID ) {
echo '<span id="last-edit">' ;
if ( $last_id = get_post_meta ( $post_ID , '_edit_last' , true ) ) {
$last_user = get_userdata ( $last_id );
printf ( __ ( 'Last edited by %1$s on %2$s at %3$s' ), wp_specialchars ( $last_user -> display_name ), mysql2date ( get_option ( 'date_format' ), $post -> post_modified ), mysql2date ( get_option ( 'time_format' ), $post -> post_modified ));
} else {
printf ( __ ( 'Last edited on %1$s at %2$s' ), mysql2date ( get_option ( 'date_format' ), $post -> post_modified ), mysql2date ( get_option ( 'time_format' ), $post -> post_modified ));
}
echo '</span>' ;
}
?>
</ span >
< br class = " clear " />
</ div >
< ? php wp_nonce_field ( 'autosave' , 'autosavenonce' , false ); ?>
< ? php wp_nonce_field ( 'closedpostboxes' , 'closedpostboxesnonce' , false ); ?>
< ? php wp_nonce_field ( 'getpermalink' , 'getpermalinknonce' , false ); ?>
< ? php wp_nonce_field ( 'samplepermalink' , 'samplepermalinknonce' , false ); ?>
< ? php wp_nonce_field ( 'meta-box-order' , 'meta-box-order-nonce' , false ); ?>
</ div >
< ? php
do_meta_boxes ( 'post' , 'normal' , $post );
do_action ( 'edit_form_advanced' );
2008-05-14 10:22:01 +02:00
do_meta_boxes ( 'post' , 'advanced' , $post );
2008-02-08 19:51:37 +01:00
2008-05-14 10:22:01 +02:00
do_action ( 'dbx_post_sidebar' );
2008-08-20 23:42:31 +02:00
2008-05-14 10:22:01 +02:00
?>
2008-08-20 23:42:31 +02:00
2008-02-29 09:08:17 +01:00
</ div >
2005-06-14 09:31:36 +02:00
</ div >
2008-10-23 00:08:58 +02:00
< br class = " clear " />
2008-08-20 23:42:31 +02:00
</ div ><!-- / poststuff -->
2005-09-27 01:55:36 +02:00
</ form >
2008-09-28 06:11:27 +02:00
</ div >
2008-03-15 23:57:47 +01:00
2008-08-24 08:56:22 +02:00
< ? php wp_comment_reply (); ?>
2008-03-15 23:57:47 +01:00
< ? php if (( isset ( $post -> post_title ) && '' == $post -> post_title ) || ( isset ( $_GET [ 'message' ]) && 2 > $_GET [ 'message' ])) : ?>
< script type = " text/javascript " >
try { document . post . title . focus ();} catch ( e ){}
</ script >
< ? php endif ; ?>