Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I <strong>really doubt</strong> that there's a hook to deal with that. So, I'll not even check the core and go straight to the dirty solution:</p> <pre><code>add_action( 'admin_head-edit.php', 'so_13418722_move_quick_edit_links' ); function so_13418722_move_quick_edit_links() { global $current_screen; if( 'post' != $current_screen-&gt;post_type ) return; if( current_user_can( 'delete_plugins' ) ) { ?&gt; &lt;script type="text/javascript"&gt; function so_13418722_doMove() { jQuery('td.post-title.page-title.column-title div.row-actions').each(function() { var $list = jQuery(this); var $firstChecked = $list.parent().parent().find('td.author.column-author'); if ( !$firstChecked.html() ) return; $list.appendTo($firstChecked); }); } jQuery(document).ready(function ($){ so_13418722_doMove(); }); &lt;/script&gt; &lt;?php } } </code></pre> <p><strong>Result</strong>:<br> <img src="https://i.stack.imgur.com/nBgrD.png" alt="move quick-edit"></p> <p><strong>Notes</strong>: </p> <ul> <li><strong>adjust</strong> your post_type: <code>'post' != $current_screen-&gt;post_type</code></li> <li><strong>adjust</strong> your column classes: <code>find('td.author.column-author')</code></li> </ul> <p><strong>Bug and solution</strong>:<br> You'll note that, after updating, the quick-edit menu goes back to its original position. The following AJAX interception deals with it. Refer to this <a href="https://wordpress.stackexchange.com/a/74595/12615">WordPress Developers answer</a> for more details.</p> <pre><code>add_action( 'wp_ajax_inline-save', 'so_13418722_ajax_inline_save' , 0 ); /** Copy of the function wp_ajax_inline_save() http://core.trac.wordpress.org/browser/tags/3.4.2/wp-admin/includes/ajax-actions.php#L1315 Only Modification marked at the end of the function with INTERCEPT */ function so_13418722_ajax_inline_save() { global $wp_list_table; check_ajax_referer( 'inlineeditnonce', '_inline_edit' ); if ( ! isset($_POST['post_ID']) || ! ( $post_ID = (int) $_POST['post_ID'] ) ) wp_die(); if ( 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_ID ) ) wp_die( __( 'You are not allowed to edit this page.' ) ); } else { if ( ! current_user_can( 'edit_post', $post_ID ) ) wp_die( __( 'You are not allowed to edit this post.' ) ); } set_current_screen( $_POST['screen'] ); if ( $last = wp_check_post_lock( $post_ID ) ) { $last_user = get_userdata( $last ); $last_user_name = $last_user ? $last_user-&gt;display_name : __( 'Someone' ); printf( $_POST['post_type'] == 'page' ? __( 'Saving is disabled: %s is currently editing this page.' ) : __( 'Saving is disabled: %s is currently editing this post.' ), esc_html( $last_user_name ) ); wp_die(); } $data = &amp;$_POST; $post = get_post( $post_ID, ARRAY_A ); $post = add_magic_quotes($post); //since it is from db $data['content'] = $post['post_content']; $data['excerpt'] = $post['post_excerpt']; // rename $data['user_ID'] = $GLOBALS['user_ID']; if ( isset($data['post_parent']) ) $data['parent_id'] = $data['post_parent']; // status if ( isset($data['keep_private']) &amp;&amp; 'private' == $data['keep_private'] ) $data['post_status'] = 'private'; else $data['post_status'] = $data['_status']; if ( empty($data['comment_status']) ) $data['comment_status'] = 'closed'; if ( empty($data['ping_status']) ) $data['ping_status'] = 'closed'; // update the post edit_post(); $wp_list_table = _get_list_table('WP_Posts_List_Table'); $mode = $_POST['post_view']; $wp_list_table-&gt;display_rows( array( get_post( $_POST['post_ID'] ) ) ); // INTERCEPT: Check if it is our post_type, if not, do nothing if( 'post' == $_POST['post_type'] ) { ?&gt; &lt;script type="text/javascript"&gt;so_13418722_doMove();&lt;/script&gt; &lt;?php } // end INTERCEPT wp_die(); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload