Come modificare l'ordine dei campi personalizzati nel form
Ho aggiunto un campo "Titolo Personalizzato" all'editor delle categorie per catturare un titolo ottimizzato per i keyword che possa essere utilizzato separatamente dal nome della categoria. Funziona benissimo, ma appare come ultimo elemento di input nella schermata della categoria. Idealmente, vorrei che fosse posizionato sotto il campo "Nome" (o almeno in cima). È possibile?
Ecco il codice che sto usando per aggiungere il mio campo di input personalizzato alla schermata di modifica della categoria...
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">Titolo Completo della Categoria</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">Il titolo è opzionale ma verrà utilizzato al posto del nome nella pagina di destinazione della categoria.</p></td>
</tr>
</table>
<?php
}

WordPress non fornisce gli hook che desideri, ma se sei disposto a utilizzare il buffer di output di PHP e preg_replace()
puoi farlo funzionare senza modificare il core. Ecco una risposta che parla della tecnica generale richiesta:
Gli hook che vorrai utilizzare sono 'category_pre_add_form'
per ob_start()
e 'category_add_form'
per ob_get_clean().

È un'opzione interessante Mike. Dovrebbe anche eliminare il problema del flicker intrinseco nell'opzione javascript. Grazie come sempre!

@Scott B - Sì, preferisco sempre farlo in PHP quando possibile. Mi piace usare jQuery per l'interattività, non come soluzione temporanea per una generazione HTML non ideale perché, come hai menzionato, è molto più pulito.

Non esiste una soluzione basata su PHP senza modificare il core. Apri il file wp-admin/edt-tag-form.php
e lo vedrai. L'hook che stai utilizzando viene attivato subito prima del pulsante di invio, e il resto del form è hard-codato.
Ma probabilmente puoi farlo con jQuery. Leggi la mia risposta a questa domanda simile per un esempio. L'esempio è per la schermata di modifica dei post, ma il concetto dovrebbe essere lo stesso—usa il metodo insertBefore()
di jQuery per spostare un elemento (tramite ID) prima di un altro elemento (tramite ID).

Mi piace la tua idea con i bit di jQuery. Ma sembra che io sia bloccato, poiché i campi di modifica della categoria (gli elementi TR) non hanno ID assegnati che posso interrogare con jQuery.
