Cómo alterar el orden de los campos personalizados en formularios
He agregado un campo "Título Personalizado" al editor de Categorías para capturar un título optimizado para SEO que pueda usarse separadamente del nombre de la categoría. Funciona bien, pero aparece como el último elemento de entrada en la pantalla de categoría. Idealmente, me gustaría que apareciera debajo del campo "Nombre" (o al menos en la parte superior). ¿Es esto posible?
Este es el código que estoy usando para agregar mi campo personalizado a la pantalla de edición de categorías...
if($pagenow == "edit-tags.php" && $_REQUEST['action'] == "edit")
add_filter('edit_category_form', 'my_category_fields');
function my_category_fields($tag) {
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="categoryTitle">Título Completo de la Categoría</label></th>
<td><input name="categoryTitle" id="categoryTitle" type="text" size="40" aria-required="false" value="<?php echo $tag_extra_fields[$tag->term_id]['cat_title']; ?>" />
<p class="description">El título es opcional pero se usará en lugar del nombre en la página de destino de la categoría.</p></td>
</tr>
</table>
<?php
}

WordPress no proporciona los hooks que deseas, pero si estás dispuesto a usar el buffer de salida de PHP y preg_replace()
puedes hacer que funcione sin modificar el núcleo. Aquí hay una respuesta que habla sobre la técnica general requerida:
Los hooks que querrás usar son 'category_pre_add_form'
para ob_start()
y 'category_add_form'
para ob_get_clean()
.

Esa es una opción interesante Mike. También debería eliminar el problema de parpadeo inherente a la opción de javascript. ¡Gracias como siempre!

@Scott B - Sí, siempre prefiero hacerlo en PHP cuando sea posible. Me gusta usar jQuery para interactividad, no para parchear una generación de HTML menos que ideal porque, como mencionas, es mucho más limpio.

No existe una solución basada en PHP sin modificar el núcleo. Si abres el archivo wp-admin/edt-tag-form.php
lo verás. El hook que estás usando se ejecuta justo antes del botón de enviar, y el resto del formulario está codificado de forma rígida.
Pero probablemente puedas hacer esto con jQuery. Lee mi respuesta a esta pregunta similar para ver un ejemplo. El ejemplo es para la pantalla de edición de entradas, pero el concepto debería ser el mismo: usa el método insertBefore()
de jQuery para mover un elemento (por ID) antes de otro elemento (por ID).

Me gusta tu idea con los fragmentos de jQuery. Pero parece que estoy atascado, ya que los campos de edición de categorías (los elementos TR) no tienen IDs asignados que pueda consultar con jQuery.
