Intereting Posts
Почему у моей таксономии есть идентификатор стиля категории? Использовать один шаблон только для пользовательских архивов типа записей? Не удалось получить идентификатор пользователя после успешного входа в файл wp_login.php wrapper div для виджетов, не показывающих со всеми виджетами Получать сообщения по мета-значению Функциональность Ajax не вызывается под плагином wordpress Обновить все сообщения, как если бы нажал кнопку «Обновить» в окне редактирования сообщений Меню администратора / страница как получить сообщения ids внутри фильтра pre_get_posts? Как суммировать значения из всех пользовательских сообщений. Как нарисовать информацию о СМИ для галереи изотопов, используя Photoswipe Сделать текущую домашнюю страницу, если есть подменю Обновления отмечены как 1, но все актуально Как настроить пользовательский каталог загрузки для каждого пользователя после перемещения каталога содержимого Общие настройки для поддомена WordPress

Изменение приоритета главного редактора

Я хочу, чтобы главный редактор сообщений WordPress появлялся ниже некоторых моих мета-полей (созданных расширенными настраиваемыми полями).

Я знаю, что есть функции add_meta_box() и remove_meta_box() , однако было бы действительно потрясающе, если бы я мог просто изменить приоритет метаданных редактора, не удаляя и не добавляя его снова.

Есть идеи?

Редактор жестко закодирован в форму . Он не вставлен add_meta_box .

Существует крючок, называемый edit_form_after_title который вы должны использовать.

Доказательство концепции:

 // use the action to create a place for your meta box function add_before_editor($post) { global $post; do_meta_boxes('post', 'pre_editor', $post); } add_action('edit_form_after_title','add_before_editor'); // add a box the location just created function test_box() { add_meta_box( 'generic_box', // id, used as the html id att __( 'Generic Title' ), // meta box title 'generic_cb', // callback function, spits out the content 'post', // post type or page. This adds to posts only 'pre_editor', // context, where on the screen 'low' // priority, where should this go in the context ); } function generic_cb($post) { var_dump($post); echo 'generic content'; } add_action( 'add_meta_boxes', 'test_box' ); 

Чтобы ответить на мой собственный вопрос, я сначала объясню, почему ответ @ s_ha_dum не работает для меня.

Я использую расширенные настраиваемые поля, чтобы добавить дополнительные мета-поля, те, которые должны появиться над редактором WordPress.

@s_ha_dum указал, что редактор WordPress жестко закодирован в шаблоне , но я заметил, что его можно отключить, удалив поддержку редактора. Имея это в виду, я отключил поддержку редактора, а затем добавил код для редактора в новый мета-ящик.

И вуаля:

 add_action('init', function () { remove_post_type_support('post', 'editor'); }); add_action('add_meta_boxes', function () { $screens = array('post'); foreach ($screens as $screen) { add_meta_box( 'moved_editor', 'Moved Editor', 'moved_editor_custom_box', $screen ); } }); function moved_editor_custom_box( $post ) { // Use nonce for verification wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); ?> <style> #moved_editor { border: none; } #moved_editor h3 { display: none; } #moved_editor .inside { padding: 0; } </style> <div id="postdivrich" class="postarea"> <?php wp_editor($post->post_content, 'content', array('dfw' => true, 'tabfocus_elements' => 'sample-permalink,post-preview', 'editor_height' => 360) ); ?> <table id="post-status-info" cellspacing="0"> <tbody> <tr> <td id="wp-word-count"><?php printf( __( 'Word count: %s' ), '<span class="word-count">0</span>' ); ?></td> <td class="autosave-info"> <span class="autosave-message">&nbsp;</span> <?php if ( 'auto-draft' != $post->post_status ) : ?> <span id="last-edit">' <?php if ( $last_id = get_post_meta($post_ID, '_edit_last', true) ) : ?> <?php $last_user = get_userdata($last_id); printf(__('Last edited by %1$s on %2$s at %3$s'), esc_html( $last_user->display_name ), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified)); ?> <?php else : ?> <?php 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)); ?> <?php endif; ?> </span> <?php endif; ?> </td> </tr> </tbody> </table> </div> <? }